2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
1.3Disposition de la structure de la thèse
Chapitre 2Analyse des exigences du système
2.1Analyse de faisabilité du système
2.1.1Analyse de faisabilité technique
2.1.2Analyse de faisabilité économique
2.1.3Analyse de faisabilité juridique
2.1.4Analyse de faisabilité opérationnelle
2.2Analyse des exigences fonctionnelles du système
2.3Analyse systématique des besoins
2.4Analyse de cas d'utilisation du système
2.5Analyse des processus système
2.5.1Ajouter un flux de données
2.5.2Modifier le flux de données
2.5.3Supprimer le processus de données
chapitre 3Conception globale du système
3.1Conception du module fonctionnel du système
3.2Conception de base de données
3.2.1Conception de la structure conceptuelle de la base de données
3.2.2Conception de tables de base de données
Chapitre 4Conception et mise en œuvre des modules clés
4.3Module de modification de mot de passe
4.4Module de carte de navigation
4.5Module de gestion des attractions populaires
4.6Module de gestion des achats de billets d'attraction
4.7Module de gestion des recommandations d'hôtels
4.8Module de gestion des réservations d'hôtel
Chapitre 5Expériences système et analyse des résultats
Système de navigation de voyage SpringBoot
Résumé
Avec le développement rapide d'Internet, de plus en plus de personnes choisissent d'obtenir des informations de voyage et de planifier des itinéraires via Internet. En tant que pays doté de paysages naturels riches et d'une longue histoire et culture, la Chine attire chaque année l'attention d'un grand nombre de touristes. L'objectif de ce site Web est de fournir aux touristes des informations de voyage précises et complètes et de fournir des services pratiques de navigation et de planification d'itinéraire. En intégrant diverses ressources touristiques, notamment des présentations d'attractions, des types de nourriture, des informations sur l'hébergement, etc., les utilisateurs peuvent obtenir les informations pertinentes dont ils ont besoin sur le site Web.
Ce projet utilise le framework Spring Boot comme outil de développement back-end. Il est simple et efficace et permet de créer rapidement des applications Web fiables. L'utilisation de Java comme langage de programmation principal garantit la stabilité et l'évolutivité du système. En tant que base de données principale, MySQL est utilisé pour stocker et gérer des données importantes telles que les informations sur les utilisateurs, les données de voyage et les commentaires des utilisateurs. En utilisant MySQL, un stockage et une récupération efficaces des données peuvent être obtenus, offrant aux utilisateurs une bonne expérience utilisateur.
Cette étude vise le contexte et l'importance de la conception et du développement d'un système de navigation touristique. En développant ce site Web, nous visons à fournir aux touristes des services d'informations de voyage pratiques et à améliorer leur expérience de voyage. Dans le même temps, ce projet contribuera également à promouvoir le développement du tourisme et servira de référence pour le développement de systèmes de navigation touristique dans d'autres régions.
Mots clés: Système de navigation de voyage ; langage JAVA ; base de données MYSQL ;
Système de navigation touristique SpringBoot
Abstrait
Avec le développement rapide d'Internet, de plus en plus de personnes choisissent d'obtenir des informations de voyage et de planifier leurs voyages via Internet. En tant que pays doté de paysages naturels riches et d'une longue histoire et culture, la Chine attire chaque année l'attention d'un grand nombre de touristes. L'objectif de ce site Web est de fournir aux visiteurs des informations de voyage précises et complètes, ainsi que de fournir des services de navigation et de planification d'itinéraire pratiques. En intégrant diverses ressources touristiques, notamment une présentation des attractions, le type de nourriture, des informations sur l'hébergement, etc., les utilisateurs peuvent obtenir les informations pertinentes dont ils ont besoin sur le site Web.
Ce projet utilise le framework Spring Boot comme outil de développement back-end, qui est simple et efficace, et permet de créer rapidement des applications Web fiables. L'utilisation de Java comme langage de programmation principal garantit la stabilité et l'évolutivité du système. MySQL est utilisé comme base de données back-end pour stocker et gérer des données importantes telles que les informations utilisateur, les données de voyage et les commentaires des utilisateurs. En utilisant MySQL, vous pouvez stocker et récupérer efficacement des données et offrir aux utilisateurs une bonne expérience utilisateur.
L'objectif de cette étude est de concevoir et de développer un système de navigation touristique pour le contexte et l'importance de ce site Web. En développant ce site Web, nous visons à fournir aux visiteurs un service d'informations touristiques pratique et à améliorer leur expérience de voyage. Dans le même temps, ce projet contribuera également à promouvoir le développement du tourisme et à fournir une référence pour le développement de systèmes de navigation touristique dans d'autres régions.
Mots clés: système de navigation de voyage, langage JAVA, framework SpringBoot, base de données MYSQL
Au cours des dernières décennies, à mesure que l'industrie mondiale du tourisme était en plein essor, la demande d'expériences de voyage a également augmenté. Le contexte de la recherche sur les systèmes de navigation de voyage remonte au besoin urgent des gens de disposer de méthodes de déplacement plus pratiques et plus efficaces. Les méthodes de voyage traditionnelles reposent souvent sur des cartes, des manuels de guidage ou des conseils oraux, mais ces méthodes présentent de nombreuses limites, telles que le fait que les informations ne sont pas mises à jour en temps opportun, qu'elles se perdent facilement et que les barrières linguistiques dans la communication.
Avec le développement continu de la technologie, les gens ont commencé à explorer comment utiliser la technologie informatique et Internet pour améliorer l'expérience de navigation en voyage. Cette demande favorise la recherche et le développement de systèmes de navigation touristique. Les premiers systèmes de navigation de voyage étaient principalement basés sur la technologie GPS. Ils pouvaient déterminer la position de l'utilisateur grâce au positionnement par satellite et fournir une planification d'itinéraire et des conseils de navigation. Ce type de système simplifie grandement le processus de déplacement des personnes, leur permettant de trouver plus facilement leur destination, économisant ainsi du temps et de l'énergie. Cependant, les systèmes de navigation GPS traditionnels présentent encore certains problèmes, tels que l'incapacité de fournir des informations routières en temps réel et le manque de recommandations personnalisées. Afin de résoudre ces problèmes, les chercheurs ont commencé à introduire la technologie de l’intelligence artificielle dans les systèmes de navigation de voyage. En analysant le Big Data et en utilisant des algorithmes d'apprentissage automatique, la nouvelle génération de systèmes de navigation de voyage peut prédire avec plus de précision les conditions de circulation, recommander des itinéraires de voyage personnalisés et fournir des informations en temps réel sur les services environnants.
En outre, avec la popularisation de l'Internet mobile, les smartphones sont devenus un outil important pour voyager, ce qui offre également de nouvelles opportunités pour le développement de systèmes de navigation de voyage. Les applications de navigation de voyage modernes peuvent non seulement fournir des services de navigation sur les téléphones mobiles, mais également combiner la technologie AR (réalité augmentée) pour offrir aux utilisateurs une expérience de navigation plus intuitive et plus vivante. Par exemple, les utilisateurs peuvent visualiser les scènes de rue environnantes grâce à la caméra du téléphone portable et afficher le meilleur itinéraire sur l'écran, ce qui améliore considérablement la commodité et la praticité de la navigation.
Outre les voyageurs individuels, les systèmes de navigation de voyage jouent également un rôle important dans le développement de l'industrie touristique. Les entreprises touristiques peuvent utiliser ces systèmes pour améliorer la qualité des services et attirer davantage de clients. Par exemple, certaines attractions touristiques peuvent fournir des services de commentaires vocaux via des systèmes de navigation pour offrir aux touristes une expérience de visite plus riche ; les agences de voyages peuvent utiliser le système pour analyser les préférences des utilisateurs, recommander des itinéraires de voyage plus adaptés et améliorer la satisfaction et la fidélité des clients.
domestique, La recherche et l'application des systèmes de navigation touristique ont reçu une certaine attention et un certain développement. De nombreuses études sont consacrées à l'intégration et à l'affichage d'informations liées au tourisme, notamment les présentations d'attractions, les guides de transport, les réservations d'hôtel, etc. Ces études fournissent des informations touristiques détaillées en développant des sites Web ou des applications pour aider les utilisateurs à comprendre les caractéristiques et les différents services de la destination. Afin de fournir des services de navigation pratiques, certaines recherches se concentrent sur le développement d’algorithmes de navigation et de planification d’itinéraires. Ces algorithmes s'appuient sur des données de géolocalisation et des informations trafic pour fournir aux utilisateurs les meilleurs itinéraires et modes de transport. Afin d’améliorer l’expérience utilisateur, certaines recherches se concentrent sur la conception d’interfaces utilisateur et le développement de systèmes de recommandations personnalisés. En analysant les intérêts et les préférences des utilisateurs, ces systèmes peuvent fournir aux utilisateurs des recommandations de voyage personnalisées et des services personnalisés. Avec le développement de la technologie Internet, la sécurité des données et la protection de la vie privée sont devenues des questions importantes dans la recherche sur les systèmes de navigation de voyage. Certaines recherches sont consacrées au développement de mécanismes sécurisés de transmission et de stockage de données pour protéger la sécurité des informations personnelles des utilisateurs. Afin d'améliorer la qualité et le niveau de service des systèmes de navigation de voyage, certaines études se concentrent sur la collecte et l'analyse des avis et commentaires des utilisateurs. En analysant les avis et opinions des utilisateurs, les problèmes peuvent être découverts à temps et des améliorations peuvent être apportées pour offrir une meilleure expérience utilisateur et de meilleurs services.
Le développement des systèmes de navigation touristique dans les pays étrangers est relativement mature. La recherche étrangère se concentre sur le développement de systèmes de navigation et de recommandation intelligents, qui utilisent les technologies d'apprentissage automatique et d'intelligence artificielle pour fournir des services de recommandation de voyage et de navigation personnalisés en fonction des intérêts et des préférences des utilisateurs. En raison de la popularité des appareils mobiles, la recherche étrangère se concentre sur le développement d’applications multiplateformes et sur l’utilisation de la technologie mobile pour fournir des services de navigation touristique. Ces études visent à fournir des applications mobiles pratiques prenant en charge des fonctions telles que la navigation en temps réel, les recommandations d'attractions et les cartes interactives. Des études étrangères ont inclus les médias sociaux et le contenu généré par les utilisateurs dans le champ de recherche des systèmes de navigation de voyage. En intégrant les données des réseaux sociaux et les avis des utilisateurs, les chercheurs peuvent fournir aux utilisateurs des informations de voyage plus complètes et un retour d'expérience réel. Avec le développement des technologies de réalité virtuelle (VR) et de réalité augmentée (AR), certaines recherches étrangères se consacrent à leur application au domaine de la navigation touristique. En utilisant la technologie VR et AR, les utilisateurs peuvent découvrir les attractions et les services de navigation de manière plus intuitive et immersive. La recherche étrangère accorde une grande attention au tourisme durable et à la protection de l'environnement. Certaines études visent à fournir des recommandations de voyages durables et à planifier des itinéraires de voyage respectueux de l'environnement afin de promouvoir le développement durable et de protéger l'environnement naturel.
En général, la recherche sur les systèmes de navigation touristique étrangère couvre les systèmes intelligents de navigation et de recommandation, les applications multiplateformes et la technologie mobile, les médias sociaux et le contenu généré par les utilisateurs, la réalité virtuelle et la technologie de réalité augmentée, ainsi que le tourisme durable et la protection de l'environnement. Ces résultats de recherche offrent aux touristes des expériences de navigation et de voyage plus pratiques, personnalisées et immersives. Cette étude s'appuiera sur les résultats de recherches étrangères et les combinera avec les caractéristiques régionales pour développer un système de navigation touristique complet, précis et convivial afin de répondre aux besoins des touristes en matière d'informations et de services touristiques.
L'article sera organisé hiérarchiquement. En plus du résumé, des remerciements et des références bibliographiques, le texte principal analysera également la configuration système requise, décrira la conception générale et les fonctions implémentées, et enfin listera quelques enregistrements de débogage. La structure principale de l'article. est comme suit:
Le chapitre 1 explique le contexte du projet, l'état actuel du développement de ce système et la disposition des chapitres du document.
Le chapitre 2 analyse les exigences spécifiques du système.
Le chapitre 3 explique la conception du système, qui couvre la conception fonctionnelle et la conception de la base de données.
Le chapitre 4 clarifie la mise en œuvre de chaque module fonctionnel du système de navigation touristique et l'affiche sous forme d'images et de textes.
Le chapitre 5 répertorie certains enregistrements de débogage et de test du système.
Le chapitre 6 présente les conclusions du système de navigation touristique.
L'analyse des exigences est la première chose à faire avant de développer un système. Si un système ne vaut pas la peine d'être développé ou viole les lois et réglementations en vigueur, le système développé ne servira à rien. Par conséquent, avant le développement, nous devons d'abord analyser les exigences du système. le développement est réalisable, et si c'est le cas, analysez spécifiquement les besoins de l'utilisateur, analysez les fonctions du système et analysez les performances du système.
La faisabilité de la technologie consiste principalement à déterminer si le langage de développement et la base de données utilisés lors du développement du système de navigation touristique sont réalisables. Ce système choisit JAVA comme langage, en utilisant le framework SpringBoot et la base de données MYSQL. Ces technologies sont actuellement très matures, et JAVA Le. Le langage prend non seulement en charge l'orientation processus, mais également l'orientation objet, il sera donc plus flexible lorsqu'il sera utilisé et il n'y aura aucun problème dans la sélection de la technologie.
Les principales considérations de faisabilité économique sont le coût et les avantages. Du point de vue du coût, JAVA, SpringBoot, MYSQL, etc. utilisés dans le processus de développement peuvent être téléchargés via des recherches en ligne sans aucun frais. du point de vue des avantages Regardez, l'achèvement du système peut fournir une assistance aux utilisateurs, réduire les coûts de l'entreprise et améliorer l'efficacité de la gestion, il n'y a donc aucun problème économique.
Le système de navigation de voyage offre aux utilisateurs ordinaires des fonctions complètes de recherche d'informations sur les voyages, d'achat de billets d'attraction et de réservation d'hôtel. En même temps, les administrateurs peuvent facilement gérer divers contenus et fonctions du site Web. De tels paramètres fonctionnels fourniront aux utilisateurs des services de voyage pratiques et créeront une plate-forme en ligne complète et efficace pour l'industrie du voyage.
La principale considération juridique est de savoir si le développement du système est illégal. Le système de navigation touristique développé est strictement conforme aux « Règlements sur la protection des logiciels informatiques de la République populaire de Chine », à la « Loi sur les droits d'auteur de la République populaire de Chine » et à d'autres lois. et les réglementations. Le développement du système peut apporter des avantages à l’entreprise. Il n’y a pas d’illégalité et c’est donc légalement possible.
En termes de fonctionnement, la principale considération est de savoir s'il est simple et faisable à utiliser pour les utilisateurs et à gérer par les gestionnaires, et si les utilisateurs sans aucune base informatique peuvent l'utiliser. Le système de navigation touristique développé est conçu avec le concept de simplicité et de facilité. d'apprentissage à l'esprit. Il y aura des boutons de navigation fixes à la fin, et l'opération peut être effectuée tant que les caractères sont lus, et l'administrateur n'a qu'à simplement ajouter, supprimer, modifier et vérifier, donc c'est également réalisable dans opération.
D'une manière générale, le système de navigation touristique développé ne pose aucun problème en termes de faisabilité et mérite d'être développé, et d'autres réalisations sont d'une grande importance pour le développement de l'industrie.
Les principales fonctions pour les utilisateurs ordinaires sont les suivantes :
Côté administrateur :
L'analyse des exigences de performance du système de navigation de voyage analyse principalement la sécurité du système (si les informations personnelles de l'utilisateur seront divulguées), la fiabilité (si l'utilisateur peut afficher des informations en fonction de l'opération réelle) et les performances (si l'opération est fluide), quelle est l'évolutivité (les fonctions peuvent-elles continuer à être étendues), etc. Les détails peuvent être exprimés dans le tableau 2.1 suivant :
Tableau 2.1 Tableau des exigences non fonctionnelles pour le système de navigation de voyage
sécurité | Désigne principalementsystème de navigation de voyageL'installation de la base de données, son utilisation et les paramètres de mot de passe doivent être conformes à la réglementation. |
fiabilité | La fiabilité signifiesystème de navigation de voyageIl peut fonctionner selon les instructions de l'utilisateur. Après test, la fiabilité est supérieure à 90 %. |
performance | Les performances sont affectéessystème de navigation de voyageC'est une condition nécessaire pour occuper le marché, donc les performances doivent être les meilleures. |
Évolutivité | Par exemple, la base de données réserve plusieurs attributs, tels que l'utilisation d'interfaces, pour garantir les exigences non fonctionnelles du système. |
Facilité d'utilisation | Les utilisateurs doivent simplement suivresystème de navigation de voyageEffectuez simplement des opérations sur le contenu d’affichage de la page. |
Maintenabilité | système de navigation de voyageLa maintenabilité du développement est très importante. Après les tests, il n'y a aucun problème de maintenabilité. |
Le système de navigation de voyage fournit aux utilisateurs ordinaires des informations complètes sur les voyages, l'achat de billets d'attraction, la réservation d'hôtel et d'autres fonctions. Le diagramme de cas d'utilisation de l'utilisateur est présenté ci-dessous :
Figure 2.1 Diagramme de cas d'utilisation du rôle utilisateur
Figure 2.2 Diagramme de cas d'utilisation du rôle d'administrateur
Tous les utilisateurs (administrateurs et utilisateurs) du système peuvent ajouter des données. La figure 2.3 montre le processus d'ajout de données.
Figure 2.3 Ajouter un organigramme de données
Personne n'est parfait, tout le monde fait parfois des erreurs. Si les informations sont erronées lors de la saisie des informations système, vous pouvez modifier les données dans le système. La figure 2.4 montre le processus de modification des données.
Figure 2.4 Modifier l'organigramme des données
Certaines données expirées apparaissent souvent dans le système, comme la déconnexion de l'utilisateur, etc. Ces données peuvent ensuite être supprimées directement. La figure 2.5 est l'organigramme lors de la suppression des données.
Figure 2.5 Organigramme des données de suppression
Après avoir analysé la faisabilité et les fonctions du système, l'étape suivante consiste à concevoir le système spécifiquement. Grâce à l'analyse de faisabilité, nous concluons que le système mérite d'être développé. Grâce à l'analyse fonctionnelle, nous pouvons déterminer quelles fonctions le système a spécifiquement mises en œuvre, puis. complétez-le en fonction des exigences fonctionnelles. Ce chapitre présente la conception fonctionnelle du système sous deux aspects : les modules fonctionnels et la base de données du système.
Grâce à l'analyse des exigences fonctionnelles dans le chapitre précédent, le diagramme de structure fonctionnelle de ce système de navigation de voyage peut être obtenu. La figure 3.1 est le diagramme de module fonctionnel du système.
Figure 3.1 Schéma du module fonctionnel du système de navigation de voyage
La conception de la base de données est la base d'un système. Quel que soit le système, quelle que soit la beauté de la conception de l'interface, s'il n'est pas pris en charge par une base de données puissante, il ne pourra pas fonctionner lors de la conception de la base de données. , nous analysons d'abord la base de données, puis développons un modèle conceptuel, et enfin créons des tables de base de données, comme indiqué ci-dessous.
Lors de la conception du modèle conceptuel de la base de données, les diagrammes d'entités ER sont généralement utilisés pour l'affichage. Tous les noms de champs dans les tables de la base de données peuvent être affichés dans les diagrammes d'entités. Le diagramme du modèle ER de la base de données principale dans ce système est illustré dans la figure ci-dessous.
Figure 3.2 Diagramme de relation ER des attractions populaires
Figure 3.3 Diagramme de relation ER relatif aux informations sur les aliments
Figure 3.4 Diagramme de relation entre les informations sur l'hébergement et les RE
Dans la table de base de données, nous verrons le nom de la table du système, la clé primaire, la clé étrangère et d'autres informations. Nous associons chaque table via la clé primaire et la clé étrangère de la table de base de données, puis l'affichons dans l'interface de la base de données principale. ce système de navigation de voyage Le tableau est le suivant :
Table access_token (durée d'accès à la connexion)
nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer | |
1 | jeton_id | int | 10 | 0 | N | Y | ID du badge d'accès temporaire | |
2 | jeton | varchar | 64 | 0 | Y | N | badge d'accès temporaire | |
3 | Info | texteeeeeeeeeeeeeee | 65535 | 0 | Y | N | ||
4 | âge maximum | int | 10 | 0 | N | N | 2 | Durée de vie maximale : 2 heures par défaut |
5 | créer du temps | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de creation: |
6 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour: |
7 | ID de l'utilisateur | int | 10 | 0 | N | N | 0 | ID de l'utilisateur: |
Tableau hébergement_information (informations sur l'hébergement)
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | information_hébergement_id | int | 10 | 0 | N | Y | Identifiant des informations sur l'hébergement | |
2 | nom_de_la_famille_d'accueil | varchar | 64 | 0 | Y | N | Nom du gîte | |
3 | affiche de séjour chez l'habitant | varchar | 255 | 0 | Y | N | Affiche chambres d'hôtes | |
4 | note_étoile_chez_la_famille | varchar | 64 | 0 | Y | N | Nombre d'étoiles des chambres d'hôtes | |
5 | financement du logement | varchar | 64 | 0 | Y | N | frais de logement | |
6 | numéro de téléphone de contact | varchar | 64 | 0 | Y | N | numéro de contact | |
7 | lieu d'hébergement | varchar | 64 | 0 | Y | N | Emplacement du gîte | |
8 | dernières_remises | texteeeeeeeeeeeeeee | 65535 | 0 | Y | N | Dernières offres | |
9 | installations de soutien | texteeeeeeeeeeeeeee | 65535 | 0 | Y | N | Installations de soutien | |
10 | services d'hébergement chez l'habitant | texteeeeeeeeeeeeeee | 65535 | 0 | Y | N | Services chez l'habitant | |
11 | les coups | int | 10 | 0 | N | N | 0 | Clics |
12 | louange_len | int | 10 | 0 | N | N | 0 | Nombre de likes |
13 | créer du temps | date et heure | 19 | 0 | N | N | Horodatage actuel | temps de creation |
14 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour |
Article de tableau (article : article pour le système de gestion de contenu)
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | article_id | moyenint | 8 | 0 | N | Y | Numéro d'article : [0,8388607] | |
2 | titre | varchar | 125 | 0 | N | Y | Titre : [0,125] est utilisé dans la balise titre des articles et du HTML | |
3 | taper | varchar | 64 | 0 | N | N | 0 | Classification des articles : [0,1000] est utilisé pour rechercher des articles du type spécifié |
4 | les coups | int | 10 | 0 | N | N | 0 | Nombre de clics : [0,1000000000] Nombre de personnes ayant visité cet article |
5 | louange_len | int | 10 | 0 | N | N | 0 | Nombre de likes |
6 | créer du temps | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de creation: |
7 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour: |
8 | source | varchar | 255 | 0 | Y | N | Source : [0,255] Source de l'article | |
9 | URL | varchar | 255 | 0 | Y | N | Adresse source : [0,255] utilisée pour accéder au site Web sur lequel l'article a été publié | |
10 | étiqueter | varchar | 255 | 0 | Y | N | Balise : [0,255] est utilisé pour marquer le contenu pertinent de l'article. Plusieurs balises sont séparées par des espaces. | |
11 | contenu | texte long | 2147483647 | 0 | Y | N | Texte : le contenu principal de l'article | |
12 | image | varchar | 255 | 0 | Y | N | photo de couverture | |
13 | description | texteeeeeeeeeeeeeee | 65535 | 0 | Y | N | Description d'article |
Tableau article_type (classification des articles)
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | type_id | petit entier | 5 | 0 | N | Y | ID de catégorie : [0,10000] | |
2 | afficher | petit entier | 5 | 0 | N | N | 100 | Ordre d'affichage : [0,1000] détermine l'ordre dans lequel les catégories sont affichées. |
3 | nom | varchar | 16 | 0 | N | N | Nom de la catégorie : [2,16] | |
4 | père_id | petit entier | 5 | 0 | N | N | 0 | ID de catégorie parent : [0,32767] |
5 | description | varchar | 255 | 0 | Y | N | Description : [0,255] décrit le rôle de cette classification | |
6 | icône | texteeeeeeeeeeeeeee | 65535 | 0 | Y | N | Icône de catégorie : | |
7 | URL | varchar | 255 | 0 | Y | N | Adresse du lien externe : [0,255] Si cette catégorie renvoie vers d'autres sites Web, définissez-la sur l'URL | |
8 | créer du temps | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de creation: |
9 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour: |
Tableau attraction_information (informations sur les attractions)
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | attraction_information_id | int | 10 | 0 | N | Y | Identifiant des informations sur l'attraction | |
2 | attraction_id | varchar | 64 | 0 | Y | N | Numéro d'attraction | |
3 | nom_attraction | varchar | 64 | 0 | Y | N | Nom de l'attraction | |
4 | classification_des_attractions_touristiques | varchar | 64 | 0 | Y | N | Classement des attractions | |
5 | affiches_attraction | varchar | 255 | 0 | Y | N | Affiches d'attractions | |
6 | attraction_promotion | varchar | 255 | 0 | Y | N | Promotion des attractions | |
7 | prix_par_habitant | int | 10 | 0 | Y | N | 0 | prix par personne |
8 | heures de travail | varchar | 64 | 0 | Y | N | Heures de travail | |
9 | Évaluation des sites pittoresques | varchar | 64 | 0 | Y | N | Note d'attraction | |
10 | numéro de téléphone de contact | varchar | 16 | 0 | Y | N | numéro de contact | |
11 | services_d'attraction | texteeeeeeeeeeeeeee | 65535 | 0 | Y | N | Services d'attractions | |
12 | introduction_aux_sites_pittoresques | texteeeeeeeeeeeeeee | 65535 | 0 | Y | N | Présentation de l'attraction | |
13 | les coups | int | 10 | 0 | N | N | 0 | Clics |
14 | louange_len | int | 10 | 0 | N | N | 0 | Nombre de likes |
15 | recommander | int | 10 | 0 | N | N | 0 | Recommandation intelligente |
16 | créer du temps | date et heure | 19 | 0 | N | N | Horodatage actuel | temps de creation |
17 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour |
Authentification des tables (gestion des droits des utilisateurs)
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | auth_id | int | 10 | 0 | N | Y | ID d'autorisation : | |
2 | groupe_d'utilisateurs | varchar | 64 | 0 | Y | N | groupe d'utilisateurs : | |
3 | nom_du_mod | varchar | 64 | 0 | Y | N | Nom du module : | |
4 | nom de la table | varchar | 64 | 0 | Y | N | Nom de la table: | |
5 | titre de la page | varchar | 255 | 0 | Y | N | titre de la page: | |
6 | chemin | varchar | 255 | 0 | Y | N | Chemin de routage : | |
7 | position | varchar | 32 | 0 | Y | N | Emplacement: | |
8 | mode | varchar | 32 | 0 | N | N | _vide | Méthode de saut : |
9 | ajouter | minuscule | 3 | 0 | N | N | 1 | Est-il possible d'ajouter : |
10 | du | minuscule | 3 | 0 | N | N | 1 | Peut-il être supprimé : |
11 | ensemble | minuscule | 3 | 0 | N | N | 1 | S'il peut être modifié : |
12 | obtenir | minuscule | 3 | 0 | N | N | 1 | Est-il possible de visualiser : |
13 | champ_ajouter | texteeeeeeeeeeeeeee | 65535 | 0 | Y | N | Ajouter des champs : | |
14 | ensemble_de_champs | texteeeeeeeeeeeeeee | 65535 | 0 | Y | N | Modifier les champs : | |
15 | champ_get | texteeeeeeeeeeeeeee | 65535 | 0 | Y | N | Champs de requête : | |
16 | nom_nav_table | varchar | 500 | 0 | Y | N | Nom de navigation dans les tableaux croisés : | |
17 | table_nav | varchar | 500 | 0 | Y | N | Navigation entre tableaux : | |
18 | option | texteeeeeeeeeeeeeee | 65535 | 0 | Y | N | Configuration: | |
19 | créer du temps | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de creation: |
20 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour: |
Tableau classification_of_tourist_attractions (classification des attractions)
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | classification_des_attractions_touristiques_id | int | 10 | 0 | N | Y | ID de classification d'attraction | |
2 | type_nom | varchar | 64 | 0 | Y | N | tapez le nom | |
3 | créer du temps | date et heure | 19 | 0 | N | N | Horodatage actuel | temps de creation |
4 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour |
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | identifiant_collecte | int | 10 | 0 | N | Y | Identifiant de la collection : | |
2 | ID de l'utilisateur | int | 10 | 0 | N | N | 0 | Identifiant du collectionneur : |
3 | source_table | varchar | 255 | 0 | Y | N | Tableau source : | |
4 | champ_source | varchar | 255 | 0 | Y | N | Champ source : | |
5 | source_id | int | 10 | 0 | N | N | 0 | Identifiant de la source : |
6 | titre | varchar | 255 | 0 | Y | N | titre: | |
7 | image | varchar | 255 | 0 | Y | N | Couverture: | |
8 | créer du temps | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de creation: |
9 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour: |
Commentaire du tableau (commentaire)
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | comment_id | int | 10 | 0 | N | Y | Identifiant du commentaire : | |
2 | ID de l'utilisateur | int | 10 | 0 | N | N | 0 | Identifiant du commentateur : |
3 | réponse_à_l'identifiant | int | 10 | 0 | N | N | 0 | ID du commentaire de réponse : vide = 0 |
4 | contenu | texte long | 2147483647 | 0 | Y | N | contenu: | |
5 | surnom | varchar | 255 | 0 | Y | N | Surnom: | |
6 | avatar | varchar | 255 | 0 | Y | N | Adresse de l'avatar : [0,255] | |
7 | créer du temps | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de creation: |
8 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour: |
9 | source_table | varchar | 255 | 0 | Y | N | Tableau source : | |
10 | champ_source | varchar | 255 | 0 | Y | N | Champ source : | |
11 | source_id | int | 10 | 0 | N | N | 0 | Identifiant de la source : |
Tableau food_information (informations sur les aliments)
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | identifiant_information_alimentaire | int | 10 | 0 | N | Y | Identifiant des informations sur les aliments | |
2 | nom_de_nourriture | varchar | 64 | 0 | Y | N | Nom de l'aliment | |
3 | types_d'aliments | varchar | 64 | 0 | Y | N | Type de cuisine | |
4 | affiche_de_nourriture | varchar | 255 | 0 | Y | N | Affiche alimentaire | |
5 | promotion_alimentaire | varchar | 255 | 0 | Y | N | Promotion alimentaire | |
6 | nourriture_emplacement | varchar | 64 | 0 | Y | N | Points de restauration | |
7 | caractéristiques_alimentaires | texteeeeeeeeeeeeeee | 65535 | 0 | Y | N | Caractéristiques des aliments | |
8 | allusions à la nourriture | texteeeeeeeeeeeeeee | 65535 | 0 | Y | N | Allusions alimentaires | |
9 | les coups | int | 10 | 0 | N | N | 0 | Clics |
10 | louange_len | int | 10 | 0 | N | N | 0 | Nombre de likes |
11 | créer du temps | date et heure | 19 | 0 | N | N | Horodatage actuel | temps de creation |
12 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour |
Table food_types (type de nourriture)
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | ID_type_de_nourriture | int | 10 | 0 | N | Y | ID du type d'aliment | |
2 | type_nom | varchar | 64 | 0 | Y | N | tapez le nom | |
3 | créer du temps | date et heure | 19 | 0 | N | N | Horodatage actuel | temps de creation |
4 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour |
Accès au tableau (clics de l'utilisateur)
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | hits_id | int | 10 | 0 | N | Y | Comme pièce d'identité : | |
2 | ID de l'utilisateur | int | 10 | 0 | N | N | 0 | Aimé par : |
3 | créer du temps | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de creation: |
4 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour: |
5 | source_table | varchar | 255 | 0 | Y | N | Tableau source : | |
6 | champ_source | varchar | 255 | 0 | Y | N | Champ source : | |
7 | source_id | int | 10 | 0 | N | N | 0 | Identifiant de la source : |
message de table (babillard électronique)
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | ID du message | int | 10 | 0 | N | Y | ID du forum : | |
2 | ID de l'utilisateur | int | 10 | 0 | N | N | 0 | ID de l'utilisateur: |
3 | titre | varchar | 64 | 0 | Y | N | titre: | |
4 | contenu | texte long | 2147483647 | 0 | N | N | contenu: | |
5 | surnom | varchar | 32 | 0 | N | N | Surnom: | |
6 | avatar | varchar | 255 | 0 | Y | N | avatar: | |
7 | | varchar | 125 | 0 | Y | N | Adresse e-mail du commentateur | |
8 | télétéléphone | varchar | 11 | 0 | Y | N | Numéro de téléphone portable de l’expéditeur du message | |
9 | créer du temps | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de creation: |
10 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour: |
11 | répondre | texte long | 2147483647 | 0 | Y | N | répondre | |
12 | réponse_état | minuscule | 4 | 0 | Y | N | 0 | état de la réponse |
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | avis_id | moyenint | 8 | 0 | N | Y | Identifiant de l'annonce : | |
2 | titre | varchar | 125 | 0 | N | N | titre: | |
3 | contenu | texte long | 2147483647 | 0 | Y | N | texte: | |
4 | créer du temps | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de creation: |
5 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour: |
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | éloge_id | int | 10 | 0 | N | Y | Comme pièce d'identité : | |
2 | ID de l'utilisateur | int | 10 | 0 | N | N | 0 | Aimé par : |
3 | créer du temps | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de creation: |
4 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour: |
5 | source_table | varchar | 255 | 0 | Y | N | Tableau source : | |
6 | champ_source | varchar | 255 | 0 | Y | N | Champ source : | |
7 | source_id | int | 10 | 0 | N | N | 0 | Identifiant de la source : |
8 | statut | peu | 1 | 0 | N | N | 1 | Statut J'aime : 1 correspond à J'aime, 0 correspond à annulé |
Tableau des utilisateurs_inscrits (utilisateurs enregistrés)
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | ID_utilisateur_enregistré | int | 10 | 0 | N | Y | Enregistrer l'ID utilisateur | |
2 | nom d'utilisateur | varchar | 64 | 0 | Y | N | nom d'utilisateur | |
3 | utilisateur_genre | varchar | 64 | 0 | Y | N | Sexe de l'utilisateur | |
4 | numéro de téléphone portable | varchar | 16 | 0 | Y | N | numéro de téléphone | |
5 | examiner_état | varchar | 16 | 0 | N | N | passé | Statut approuvé |
6 | ID de l'utilisateur | int | 10 | 0 | N | N | 0 | ID de l'utilisateur |
7 | créer du temps | date et heure | 19 | 0 | N | N | Horodatage actuel | temps de creation |
8 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour |
Table route_planning (planification d'itinéraire)
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | ID de planification d'itinéraire | int | 10 | 0 | N | Y | ID de planification d'itinéraire | |
2 | nom_route | varchar | 64 | 0 | Y | N | nom de l'itinéraire | |
3 | en passant par des sites pittoresques | varchar | 64 | 0 | Y | N | Passage de sites pittoresques | |
4 | afficher_images | varchar | 255 | 0 | Y | N | Afficher les photos | |
5 | frais de voyage | varchar | 64 | 0 | Y | N | Coût du voyage | |
6 | jours_de_voyage | varchar | 64 | 0 | Y | N | Jours de voyage | |
7 | adapté au public | varchar | 64 | 0 | Y | N | Convient à la foule | |
8 | guide_de_route | texteeeeeeeeeeeeeee | 65535 | 0 | Y | N | Guide d'itinéraire | |
9 | les coups | int | 10 | 0 | N | N | 0 | Clics |
10 | louange_len | int | 10 | 0 | N | N | 0 | Nombre de likes |
11 | créer du temps | date et heure | 19 | 0 | N | N | Horodatage actuel | temps de creation |
12 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour |
Diapositives de tableau (carrousel)
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | slides_id | int | 10 | 0 | N | Y | ID de l'image du carrousel : | |
2 | titre | varchar | 64 | 0 | Y | N | titre: | |
3 | contenu | varchar | 255 | 0 | Y | N | contenu: | |
4 | URL | varchar | 255 | 0 | Y | N | Lien: | |
5 | image | varchar | 255 | 0 | Y | N | Image du carrousel : | |
6 | les coups | int | 10 | 0 | N | N | 0 | Nombre de clics : |
7 | créer du temps | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de creation: |
8 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour: |
Téléchargement de table (téléchargement de fichiers)
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | ID de téléchargement | int | 10 | 0 | N | Y | Identifiant de téléchargement | |
2 | nom | varchar | 64 | 0 | Y | N | nom de fichier | |
3 | chemin | varchar | 255 | 0 | Y | N | chemin d'accès | |
4 | déposer | varchar | 255 | 0 | Y | N | chemin du fichier | |
5 | afficher | varchar | 255 | 0 | Y | N | ordre d'affichage | |
6 | père_id | int | 10 | 0 | Y | N | 0 | ID parent |
7 | dir | varchar | 255 | 0 | Y | N | dossier | |
8 | taper | varchar | 32 | 0 | Y | N | Type de fichier |
Utilisateur de la table (compte utilisateur : utilisé pour enregistrer les informations de connexion de l'utilisateur)
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | ID de l'utilisateur | moyenint | 8 | 0 | N | Y | ID utilisateur : [0,8388607] L'utilisateur obtient d'autres données relatives à l'utilisateur | |
2 | État | petit entier | 5 | 0 | N | N | 1 | Statut du compte : [0,10](1 disponible | 2 anormaux | 3 gelés | 4 déconnecté) |
3 | groupe_d'utilisateurs | varchar | 32 | 0 | Y | N | Groupe d'utilisateurs : [0,32767] détermine l'identité et les autorisations de l'utilisateur | |
4 | heure_de_connexion | horodatage | 19 | 0 | N | N | Horodatage actuel | Heure de la dernière connexion : |
5 | télétéléphone | varchar | 11 | 0 | Y | N | Numéro de téléphone mobile : [0,11] Numéro de téléphone mobile de l'utilisateur, utilisé pour récupérer le mot de passe ou se connecter | |
6 | état_du_téléphone | petit entier | 5 | 0 | N | N | 0 | Certification du téléphone portable : [0,1] (0 non certifié | 1 en cours de révision | 2 certifié) |
7 | nom d'utilisateur | varchar | 16 | 0 | N | N | Nom d'utilisateur : [0,16] Le nom de compte utilisé par l'utilisateur pour se connecter | |
8 | surnom | varchar | 16 | 0 | Y | N | Surnom : [0,16] | |
9 | mot de passe | varchar | 64 | 0 | N | N | Mot de passe : [0,32] Le mot de passe requis pour la connexion de l'utilisateur, composé de 6 à 16 chiffres ou en anglais | |
10 | | varchar | 64 | 0 | Y | N | Email : [0,64] Email de l'utilisateur, utilisé pour récupérer le mot de passe ou se connecter | |
11 | email_state | petit entier | 5 | 0 | N | N | 0 | Certification par e-mail : [0,1] (0 non certifié | 1 en cours de révision | 2 certifié) |
12 | avatar | varchar | 255 | 0 | Y | N | Adresse de l'avatar : [0,255] | |
13 | ouvert_id | varchar | 255 | 0 | Y | N | Pour obtenir les champs d'informations utilisateur | |
14 | créer du temps | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de creation: |
15 | niveau_vip | varchar | 255 | 0 | Y | N | niveau d'adhésion | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | réduction pour les membres |
Table user_group (groupe d'utilisateurs : utilisé pour l'identité et l'authentification frontales des utilisateurs)
numéro de série | nom | type de données | longueur | Décimales | Autoriser les valeurs nulles | clé primaire | valeur par défaut | illustrer |
1 | groupe_id | moyenint | 8 | 0 | N | Y | ID du groupe d'utilisateurs : [0,8388607] | |
2 | afficher | petit entier | 5 | 0 | N | N | 100 | Ordre d'affichage : [0,1000] |
3 | nom | varchar | 16 | 0 | N | N | Nom : [0,16] | |
4 | description | varchar | 255 | 0 | Y | N | Description : [0,255] Décrit les caractéristiques ou l'étendue des autorisations de ce groupe d'utilisateurs. | |
5 | source_table | varchar | 255 | 0 | Y | N | Tableau source : | |
6 | champ_source | varchar | 255 | 0 | Y | N | Champ source : | |
7 | source_id | int | 10 | 0 | N | N | 0 | Identifiant de la source : |
8 | registre | petit entier | 5 | 0 | Y | N | 0 | Lieu d'inscription : |
9 | créer du temps | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de creation: |
10 | temps de mise à jour | horodatage | 19 | 0 | N | N | Horodatage actuel | Temps de mise à jour: |
Les administrateurs et les utilisateurs saisissent leur numéro de compte + mot de passe sur l'interface de connexion, terminent la vérification et cliquent sur le bouton "Connexion". Le système fera correspondre les comptes de l'administrateur et de l'utilisateur dans le tableau de la base de données des utilisateurs si le numéro de compte et le mot de passe sont corrects. , ils se connecteront au système. L'interface de gestion principale de chaque utilisateur, sinon les informations correspondantes seront demandées et l'utilisateur reviendra à l'interface de connexion. L'interface principale est affichée comme le montre la figure 4.1 ci-dessous.
Figure 4.1 Schéma de l'interface de connexion
Le code de connexion est le suivant :
/**
* Se connecter
* @param données
* @param httpServletRequest
* @retour
*/
@PostMapping("connexion")
Carte publique<String, Object> connexion(@RequestBody Carte<String, String> données, HttpServletRequest httpServletRequest) {
log.info("[Exécuter l'interface de connexion]");
Chaîne nom d'utilisateur = data.get("nom d'utilisateur");
Chaîne email = data.get("email");
Chaîne téléphone = data.get("téléphone");
Chaîne de mot de passe = data.get("mot de passe");
Liste de résultatsList = null;
Carte<String, String> carte = nouveau HashMap<>();
si (nom d'utilisateur != null && "".equals (nom d'utilisateur) == false) {
map.put("nom d'utilisateur", nom d'utilisateur);
resultList = service.selectBaseList(service.select(carte, nouveau HashMap<>()));
}
sinon si (email != null && "".equals(email) == false){
carte.put("email", email);
resultList = service.selectBaseList(service.select(carte, nouveau HashMap<>()));
}
sinon si (téléphone != null && "".equals(téléphone) == false){
map.put("téléphone", téléphone);
resultList = service.selectBaseList(service.select(carte, nouveau HashMap<>()));
}autre{
return error(30000, "Le compte ou le mot de passe ne peut pas être vide");
}
si (resultList == null || mot de passe == null) {
return error(30000, "Le compte ou le mot de passe ne peut pas être vide");
}
//Détermine s'il existe cet utilisateur
si (resultList.size()<=0){
erreur de retour (30000, "L'utilisateur n'existe pas");
}
Utilisateur par nom d'utilisateur = (Utilisateur) resultList.get(0);
Carte<String, String> groupMap = nouveau HashMap<>();
groupMap.put("nom",byUsername.getUserGroup());
Liste groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
si (groupList.size()<1){
return error(30000,"Le groupe d'utilisateurs n'existe pas");
}
Groupe d'utilisateurs userGroup = (UserGroup) groupList.get(0);
//Requête du statut de l'avis de l'utilisateur
si (!StringUtils.isEmpty(userGroup.getSourceTable())){
Chaîne res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
si (res==null){
erreur de retour (30000, "L'utilisateur n'existe pas");
}
if (!res.equals("passed")){
return error(30000,"Cet utilisateur n'a pas réussi l'évaluation");
}
}
//Requête du statut de l'utilisateur
si (byUsername.getState()!=1){
return error(30000, "L'utilisateur n'est pas disponible et ne peut pas se connecter");
}
Chaîne md5password = service.encryption(mot de passe);
si (byUsername.getPassword().equals(md5password)) {
// Stocker le jeton dans la base de données
Jeton d'accès accessToken = nouveau jeton d'accès();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(parUsername.getUserId());
Durée durée = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
//Renvoyer les informations utilisateur
Utilisateur JSONObject = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
utilisateur.put("jeton", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",utilisateur);
retourner le succès (ret);
} autre {
return error(30000, "Le compte ou le mot de passe est incorrect");
}
}
L'utilisateur saisit le numéro de compte + le mot de passe sur l'interface de connexion, termine la vérification et clique sur le bouton "Connexion". Le système fera correspondre les comptes de l'administrateur et de l'utilisateur dans le tableau de la base de données des utilisateurs. correct, l'utilisateur sera connecté au système. L'interface de gestion principale, sinon les informations correspondantes seront demandées et l'utilisateur reviendra à l'interface de connexion. L'interface principale est illustrée dans la figure 4.2 ci-dessous.
Figure 4.1 Schéma de l'interface d'enregistrement
Le code d'enregistrement est le suivant :
/**
* registre
* @param utilisateur
* @retour
*/
@PostMapping("s'inscrire")
Carte publique<String, Object> inscription(@RequestBody Utilisateur utilisateur) {
//Requête utilisateur
Carte<String, String> requête = nouvelle HashMap<>();
Carte<String,Object> carte = JSON.parseObject(JSON.toJSONString(utilisateur));
query.put("nom d'utilisateur",utilisateur.getUsername());
Liste liste = service.selectBaseList(service.select(query, new HashMap<>()));
si (liste.size()>0){
return error(30000, "L'utilisateur existe déjà");
}
map.put("mot de passe",service.encryption(String.valueOf(map.get("mot de passe"))));
service.insert(carte);
retourner le succès(1);
}
Une fois que l'utilisateur a terminé l'enregistrement à l'aide du système, s'il doit modifier le mot de passe de connexion, le système peut également lui fournir l'autorisation de modifier le mot de passe. Tous les opérateurs du système peuvent modifier leurs propres informations de mot de passe. Pour exécuter cette fonction, ils doivent d'abord se connecter au système, puis sélectionner l'option de changement de mot de passe, puis remplir le mot de passe initial et le nouveau mot de passe dans la zone de texte indiquée pour terminer le processus. opération de changement de mot de passe. Lors du remplissage, s'il y a une différence entre les deux remplissages de mot de passe, alors l'opération de changement de mot de passe échoue. L'image ci-dessous montre l'interface correspondante de cette section. L'interface est comme indiqué ci-dessous.
Figure 4.3 Schéma de l'interface de modification du mot de passe
Le code de modification du mot de passe est le suivant :
/**
* changer le mot de passe
* @param données
* @param demande
* @retour
*/
@PostMapping("changer_mot_de_passe")
Carte publique<String, Object> changer_mot_de_passe(@RequestBody Carte<String, String> données, requête HttpServletRequest){
// Récupère l'ID utilisateur basé sur le jeton
Jeton de chaîne = request.getHeader("x-auth-token");
Entier userId = tokenGetUserId(jeton);
// Récupère l'utilisateur en fonction de l'ID utilisateur et de l'ancien mot de passe
Carte<String, String> requête = nouvelle HashMap<>();
Chaîne o_password = data.get("o_password");
query.put("user_id", String.valueOf(userId));
query.put("mot de passe", service.encryption(o_password));
int count = service.selectBaseCount(service.count(requête, service.readConfig(requête)));
si(compte > 0){
// changer le mot de passe
Carte<String,Object> formulaire = nouveau HashMap<>();
form.put("mot de passe",service.encryption(data.get("mot de passe")));
service.update(requête,service.readConfig(requête),formulaire);
retourner le succès(1);
}
return error(10000,"Échec de la modification du mot de passe!");
}
Figure 4.4 Schéma de l'interface de planification d'itinéraire
Informations sur les attractions : les utilisateurs peuvent consulter la liste d'informations sur les attractions et consulter les dernières présentations des attractions touristiques, y compris les présentations des attractions, les guides de transport, les heures d'ouverture, les présentations des attractions, les évaluations des attractions, etc. Ils peuvent également aimer, collecter et commenter les attractions d'intérêt et rétrogrades. voyage. L'interface est comme indiqué ci-dessous.
Figure 4.5 Schéma de l'interface d'information sur l'attraction
Liste d'informations sur les aliments : affiche les informations sur les aliments recommandés, notamment le nom de l'aliment, son type, ses caractéristiques, l'affichage d'images, etc. Les utilisateurs peuvent choisir d'aimer, de collecter, de commenter et d'autres opérations. L'interface est présentée ci-dessous.
Figure 4.6 Diagramme d'interface de la liste d'informations sur les aliments
Gestion de la planification d'itinéraire : gérez l'ajout de listes de planification d'itinéraire, notamment l'ajout de noms d'itinéraire, de sites pittoresques traversés, des coûts de trajet, des jours de voyage, des foules appropriées, des stratégies d'itinéraire et d'autres informations. L'interface est comme indiqué ci-dessous.
Figure 4.7 Schéma de l'interface de gestion de la planification d'itinéraire
Gestion des informations sur les attractions : gérez et ajoutez des informations à la liste d'informations sur les attractions, notamment les noms des attractions, les classifications des attractions, les promotions des attractions, les heures d'ouverture, les notes, les numéros de contact et d'autres informations. L'interface est comme indiqué ci-dessous.
Figure 4.8 Schéma de l'interface de gestion des informations sur les attractions
Gestion des informations sur les aliments : gérez et ajoutez des informations à la liste d'informations sur les aliments, notamment les noms des aliments, les types d'aliments, les promotions alimentaires, les emplacements des aliments, les allusions alimentaires et d'autres informations. L'interface est présentée ci-dessous.
Figure 4.9 Schéma d'interface pour l'ajout d'informations sur les aliments
Gestion des informations sur l'hébergement : gérez les listes d'informations sur l'hébergement recommandé et ajoutez des informations sur l'hébergement, notamment le nom du B&B, le nombre d'étoiles du B&B, le numéro de contact, l'emplacement du B&B, les services du B&B et d'autres informations. L'interface est comme indiqué ci-dessous.
Figure 4.10 Schéma de l'interface de réservation d'hôtel
Gestion du système : gérez l'affichage et la commutation des images du carrousel sur la page d'accueil, y compris l'ajout, la modification et la suppression d'images et de liens d'images de carrousel, etc. L'interface est comme indiqué ci-dessous.
Figure 4.11 Schéma de l'interface de gestion du système
À ce stade, le développement du système est pratiquement terminé. Ensuite, nous analysons les expériences et les résultats du système pour nous assurer que le système peut fonctionner normalement, puis être mis en service. La méthode de détection pour les expériences et l'analyse des résultats du système consiste à tester. le système. Le test est le système Dans la dernière étape d'achèvement, le système qui n'a pas été testé ne peut pas être utilisé, sinon cela entraînera des pertes si un bug se produit. Ci-dessous, nous analysons la méthode de test et les cas d'utilisation des tests, et donner enfin les résultats des tests du système.
Il existe deux types de tests système, l'un est le test en boîte noire et l'autre est le test en boîte blanche. Dans le processus de test en boîte noire, nous ne le faisons pas. Connaître son principe de développement.Nous testons simplement le système en tant qu'utilisateur.Nous nous appuyons principalement sur notre expérience de test précédente pour prendre certaines valeurs critiques, puis les tester à travers des cas de test.C'est le moyen le plus rapide de trouver des problèmes. Deuxièmement, nous pouvons trouver des données représentatives et effectuer des tests de cas d'utilisation sur le système. Les outils de test couramment utilisés dans le processus de test en boîte noire sont Winrunner et AutoRunner ; les tests en boîte blanche sont appelés tests de résultats, c'est-à-dire des tests logiques. Dans le processus de test en boîte blanche, nous testons principalement sur la base des principes de développement du système. Nous testons principalement si le code a rempli ses fonctions spécifiques et si le chemin est correct. Cela prend du temps et est laborieux, car chaque fonction a plus d'un chemin d'exécution. En testant le chemin d'exécution dans le programme, nous pouvons détecter s'il y a des bogues dans le code développé et s'il a répondu aux attentes des outils de test couramment utilisés. Les tests -box sont Jcontract, C++ Test et CodeWizard.
Test fonctionnel du module de connexion :
Tableau 5.1 Tableau de test de fonction du module de connexion
nom du test | fonction de test | Opération en cours | résultat attendu | Résultats de test |
Test du module de connexion | Connexion réussie | Les utilisateurs peuvent accéder à l'interface de connexion du système de navigation de voyage via le navigateur, saisir le nom d'utilisateur : admin et le mot de passe admin, et cliquer sur le bouton « Connexion » après avoir terminé la vérification du puzzle coulissant. | Connexion réussie à l'interface gérée par l'administrateur | correct |
Test du module de connexion | Erreur d'authentification | Les utilisateurs peuvent accéder à l'interface de connexion du système de navigation de voyage via le navigateur, saisir le nom d'utilisateur : admin et le mot de passe 111, et cliquer sur le bouton « Connexion » après avoir terminé la vérification du puzzle coulissant. | Le système affiche le message "Le nom d'utilisateur et le mot de passe ne correspondent pas". | correct |
Test de fonction d'ajout d'informations utilisateur :
Tableau 5.2 Tableau de test de fonction d'ajout d'informations utilisateur
nom du test | fonction de test | Opération en cours | résultat attendu | Résultats de test |
Test du module d'ajout d'informations utilisateur | Informations utilisateur ajoutées avec succès | L'administrateur clique sur "Informations utilisateur" dans le menu "Utilisateur système" pour afficher toutes les informations utilisateur. Cliquez sur le bouton "Ajouter", entrez le numéro de compte, le mot de passe, le pseudo, le numéro de téléphone portable, l'e-mail, etc. cliquez sur le bouton « Envoyer ». | Invite ajoutée avec succès | correct |
Test du module d'ajout d'informations utilisateur | Échec de l'ajout des informations utilisateur | L'administrateur clique sur "Informations utilisateur" dans le menu "Utilisateurs système" pour afficher toutes les informations utilisateur. Cliquez sur le bouton "Ajouter" sans saisir le numéro de compte. Après avoir rempli les autres informations normalement, cliquez sur le bouton "Soumettre". | Invite "L'ajout a échoué, le compte ne peut pas être vide" | correct |
Test du module fonctionnel d'information sur les informations de voyage :
Tableau 5.3 Formulaire de test pour interroger la fonction d'informations sur les voyages
nom du test | fonction de test | Opération en cours | résultat attendu | Résultats de test |
Test de fonction d'information sur les informations de voyage | Statut de réussite de la requête | L'utilisateur clique sur « Informations de voyage » dans la barre de menu, puis toutes les informations de voyage dans le système apparaîtront. | recherche réussie | correct |
Les attractions populaires ajoutent un test de module de fonction :
Tableau 5.4 Ajouter un tableau de test de fonction d'attractions populaires
nom du test | fonction de test | Opération en cours | résultat attendu | Résultats de test |
Les attractions populaires ajoutent un test de module | Ajout réussi d'attractions populaires | Cliquez sur le menu « Attractions populaires » et entrez les informations sur l'attraction pour soumettre les informations. | Soumission rapide réussie | correct |
Les attractions populaires ajoutent un test de module | Échec de l'ajout d'attractions populaires | Lorsque vous soumettez des informations sur les attractions populaires, n'entrez pas de billets d'attraction. Après avoir rempli normalement les autres informations, cliquez sur le bouton « Soumettre ». | Invite "L'ajout a échoué, les informations ne peuvent pas être vides" | correct |
Dans ce chapitre, nous avons effectué un test en boîte noire et blanche sur le système de navigation de voyage et effectué une analyse de cas d'utilisation de certaines fonctions du système. Nous pouvons constater que le système est relativement stable et que toutes les fonctions du système peuvent fondamentalement être utilisées. être réalisé, ce qui peut satisfaire les besoins des administrateurs et des utilisateurs en matière d'informations de voyage, ajouter des attractions populaires, ajouter des informations sur les utilisateurs et d'autres besoins. Grâce aux tests, il peut être constaté que pendant le fonctionnement du système, ses fonctions sont complètes. Pour les informations d'erreur de saisie, les informations d'erreur peuvent être demandées, ce qui permet aux utilisateurs de savoir où se trouvent les erreurs dans les informations qu'ils ont saisies. opération, puis effectuer des corrections. De plus, l'interface du système a toutes des barres de navigation, qui sont très pratiques à utiliser et ne nécessitent aucune formation pour les utilisateurs. C'est un système très précieux pour les entreprises.
Après plusieurs mois de travail acharné, ce système de navigation de voyage a finalement été achevé. Bien que certains petits systèmes aient été développés pendant l'école, ils ont tous été complétés avec l'explication et l'aide de l'enseignant. Il n'y a eu aucune analyse des exigences ni aucune expérience préalable au développement. de la conception du système, le système de navigation de voyage développé cette fois est donc d'une grande importance pour moi.
Au début du développement du système, nous avons d'abord mené une enquête sur les besoins du système de navigation touristique pour comprendre quelles fonctions le système développé doit mettre en œuvre pour que l'entreprise réponde aux besoins de gestion de l'utilisateur, et nous avons ensuite analysé les besoins ; le langage JAVA que nous connaissons. La base de données MYSQL est conçue et développée à l'aide du framework SpringBoot Vous pouvez consulter et apprendre ces technologies via les bibliothèques CNKI, les bibliothèques scolaires et autres lieux, et maîtriser les idées et méthodes de programmation. le système, de la faisabilité du développement du système et de la mise en œuvre du système en termes de fonctions, de performances que le système devrait avoir et des procédures de fonctionnement du système, nous effectuons une analyse complète du système pour déterminer la fonction finale. du système, concevant ainsi les fonctions et la base de données du système, et enfin la mise en œuvre du système et le test des fonctions mises en œuvre, pour garantir que le système peut fonctionner de manière stable.
Au cours du processus de développement, beaucoup de mes propres problèmes ont été exposés. Par exemple, la préparation initiale n'était pas suffisante et je ne parvenais pas à comprendre pleinement le processus de fonctionnement ; je ne maîtrisais pas suffisamment la programmation JAVA pendant le processus de développement. toujours des problèmes avec la configuration de l'environnement système. De nombreux problèmes provoquent souvent des erreurs lors de l'exécution du projet. Il n'y a pas de fin à l'apprentissage. En consultant les informations et en demandant conseil au tuteur, j'ai lentement résolu ces problèmes. Je serai plus rigoureux dans mes études et mon travail futurs, j'en bénéficierai pour la vie !
[1] Wu Linglin. Conception et mise en œuvre d'un système de gestion de la relation client basé sur SpringBoot [J], 2023, 20(24) : 60-62.
[2] Huang Saiying. Conception d'un système de gestion des archives hospitalières basé sur Springboot [J].
[3] Lin Shengfeng, Yao Jinjiang, Lin Tao, Liu Jiaxiao, Tian Zhizhuo, Li Chao Conception d'un système de gestion de laboratoire universitaire basé sur SpringBoot Wireless Internet Technology, 2023, 20(18) : 80-82.
[4] Wang Rong, Li Qiang, He Ying, Guo Ya, Wu Xiaomin, Yang Zhenglin, Huang Yiwang Conception et mise en œuvre d'un système de recommandation de voyage personnalisé [J], 2023, 39(09):95-99.
[5] Yin Li, Du Xiaonan Conception et mise en œuvre d'un système de points sur le campus basé sur SpringBoot et Vue Integrated Circuit Applications, 2023, 40(07) : 414-415.
[6] Li Qin, Cui Mingyang, Qian Yiwen, Liu Jingjing. Développement d'un système de gestion d'archives universitaires supérieures basé sur SpringBoot [J].
[7] Li En. Conception et mise en œuvre d'une plateforme de tourisme rouge de Wuhan basée sur un algorithme de recommandation des utilisateurs [D].
[8] Wan Yanbing. Recherche et développement d'un système de recommandation de voyage personnalisé basé sur Flink [D].
[9] Yang Jiapeng, Zu Yuwei, Ji Jiaqi, Chen Lifang. Système de recommandation de voyages Waterfall Fusion basé sur le framework Spark [J].
[10]Yu Yang.Conception et mise en œuvre d'un système de gestion des informations étudiantes basé sur Springboot[J].Progrès dans l'informatique, les signaux et les systèmes,2022,6(6) :
[11] Chen Yong. Conception d'un système de recommandation de voyage basé sur un algorithme de filtrage collaboratif [J] Value Engineering, 2022, 41(30) : 160-162.
[12] Zhang Min, Zhang Lamei, Chen Zhengyu. Système de recommandation de voyages basé sur le Web [J].
[13] Chen Ling. Conception et mise en œuvre du système de recommandation de tourisme rouge en Chine basé sur Django [J Software, 2022, 43(09) : 100-103.
[14] Xu Yang. Système de recommandation d'itinéraires de voyage basé sur un graphique de connaissances [D].
[15]Wu Hejing.Système de gestion du middle office commercial basé sur Springboot[J].Journal international des réseaux avancés, de la surveillance et des contrôles,2022,7(2):32-45.
[16] Liu Xiuhuan. Conception et mise en œuvre d'un système de recommandation de voyage parent-enfant [D].
[17] Li Wei. Recherche sur la conception d'un système de recommandation touristique intelligent basé sur la technologie d'exploration de données massives [J].
[18]Fuyuan Cheng.Système de gestion du recrutement de talents pour les petites et micro-entreprises basé sur le framework Springboot[J].Progrès dans la technologie éducative et la psychologie,2021,5(2) :
[19]Guanhong Chen, Jiangming Xu.Conception et mise en œuvre d'une plateforme d'apprentissage efficace basée sur SpringBoot Framework[J].Journal of Electronics and Information Science,2020,6(1) :
[20]Jian Chen, Chen Jian, Pan Hailan.Conception d'un système d'information de gestion des heures de travail sur SpringBoot Framework[J].Journal of Physics : Conference Series,2020,1646(1):012136-.
« Reconnaissance » signifie la fin de la thèse, et signifie également la réussite de mon projet de fin d'études. Cela signifie également que ma carrière universitaire touche à sa fin. Je suis sur le point de quitter mes professeurs bien-aimés et mes chers camarades de classe. merci tout d'abord. Le meilleur, ce sont tous les professeurs, "Les montagnes sont pleines de printemps et les jardins sont pleins de vert, les pêches et les prunes se disputent le printemps et les sourires apparaissent, le printemps est toujours là à l'est, à l'ouest, au nord et sud, seul le professeur fait attention", ils ont tout donné dans mes études et dans ma vie, il m'a enseigné avec sérieux ; deuxièmement, je tiens à remercier mon instructeur. Il a joué un rôle de guide dans tout mon projet de fin d'études. Chaque fois que j'ai eu des difficultés , il m'aidait toujours immédiatement et me guidait pour résoudre le problème. Au lieu de me dire directement la réponse : « Il vaut mieux apprendre à pêcher à un homme que de lui apprendre à pêcher. » Cette approche de l'instructeur m'a toujours été bénéfique. ma vie. En même temps, j'ai également appris beaucoup de compétences de développement et de tests auprès de l'instructeur, ce qui me sera bénéfique à l'avenir. Je ressens tellement de réticence à leur égard que je ne peux pas l'exprimer avec des mots. Je crois que chaque fois que je penserai à eux dans ma vie future, mon cœur se réchauffera. Ce genre d'amitié ne peut être remplacé par aucune émotion. Enfin, je voudrais remercier ma famille, Merci à moi-même, ma famille pour son soutien, et ma persévérance dans mes études, je crois que mon futur chemin s'améliorera de plus en plus.
Pour obtenir le code source du projet gratuitement, veuillez suivre ❥ Aimez, collectez et envoyez un message privé au blogueur, merci~