On se propose de développer le service métier permettant de gérer les commandes pour un site de vente en ligne. Les spécifications précises du service à développer sont explicitées dans le javadoc des méthodes de la classe CommandeService. Les tests unitaires fournis vérifient que les règles métier sont bien respectées.
Clonez le dépôt et naviguez dans le répertoire du projet :
git clone https://github.com/bastide/comptoirs_services_enonce.git
cd comptoirs_services_enonce
mvn clean spring-boot:run
Ouvrir l'application web sur http://localhost:8989
L'application utlise une base de données relationnelle dont le modèle conceptuel est le suivant :
Notes :
- Dans la table
Produit
, le champunitesCommandées
représente le nombre d'unités "en commande", c'est à dire présentes dans des commandes qui n'ont pas encore été envoyées. - Dans la table
Produit
, le champunitesEnStock
représente le nombre d'unités "en stock". Contrainte métier : la quantité en stock ne doit jamais être inférieure à la quantité en commande. - Dans la table
Commande
, le champenvoyeele
indique si la commande a été envoyée ou non (null si pas envoyée). Quand une commande est envoyée, la date d'envoi est enregistrée dans ce champ, les produits commandés ne sont plus "en stock" ni "en commande".
- dans
ClientRepository
, trouver la requête qui calcule le nombre d'articles commandés pour un client dont le code est passé en paramètre. - Implementer les méthodes de la classe
CommandeService
de manière à ce que les tests unitaires passent tous.