Im vorherigen Abschnitt haben wir die detaillierte Seite des Produkts abgeschlossen und den sekundären Cache von Hibernate verwendet, um die detaillierte Seite zu laden, um die Leistung des Systems zu verbessern. Klicken Sie auf den Artikel, um anzuzeigen:. In diesem Abschnitt beginnen wir den Einkaufswagen -Teil.
1. Fügen Sie eine neue Tabelle hinzu
Zunächst fügen wir der Datenbank mehrere Tabellen hinzu: Benutzertabelle, Bestellstatierentabelle, Bestell Tabelle (Einkaufswagentabelle) und Einkaufsartikeltabelle. Die grundlegenden Informationen des Benutzers werden in der Benutzertabelle gespeichert. Die Bestellstatus -Tabelle speichert hauptsächlich den Status der Bestellung, wie z. B. versendet. Die Bestellentabelle speichert hauptsächlich die Informationen des Benutzers und den Status der Reihenfolge, sodass sie mit der Benutzertabelle und der Bestellstatus -Tabelle bezieht. Die Einkaufstabelle speichert ein bestimmtes Produkt und die Bestellung, zu der es gehört, so dass sie mit der Produkttabelle und der Bestellentabelle zusammenhängt. Für bestimmte Tabelleninformationen finden Sie in der folgenden SQL -Anweisung:
/*================================================================================= ===========================================================ieben Tabelle erstellen Benutzer ( /* Benutzernummer, automatisches Wachstum* / ID int Primärschlüssel Nicht NULL Auto_increment, /* Benutzeranmeldung Name* / Login Varchar (20), /* Benutzerausgleichsname* / Name Varchar (20), /* Benutzeranmeldung Passwort* / Pass varchar (20), /* Benutzer Geschlecht* / Sex -Varchar (20) (20). /*============================================================= ==========================================================// /* Tabelle: Einkaufswagen (Bestellung) Tischstruktur* / /*======================================================================== =========================================================================== =========================================================================== =========================================================================== TABLE FORDER CREATE ( /* Auftragsnummer, automatisches Wachstum* / ID int Primärschlüssel Null NULL Auto_increment, /* Empfängername* / Name Varchar (20), /* Empfänger Telefonnummer* / Telefon varchar (20), /* Lieferungsinformationen* / Bemerkung Varchar (20), /* Bestelldatum* / Datum des Zeitpunkts Timest -Standard -Datum, /* -Stum -Bestellung* / Total -Decimal -Code* / Total -Dezimaler* / Total -Decimal -Vorstellung* / Total Decimal -Vorstellung* / Total -Decimal -Vorstellung* / Gesamt -Bestellmodell* / Gesamt -Bestellmodelle* / Gesamt -Bestellmodell* / Gesamt -Bestellmodelle* / Gesamt -Bestellmodelle* / Gesamt -Bestellmodelle* / Total Code* / Total Decimal. varchar (20), /* Empfänger Postleitzahl* / Adress varchar (200), /* Bestellstatus* / SID int Standard 1, /* Mitgliedsnummer* / uid int, Einschränkung SID_FK Fremdschlüssel (SID) Referenzen Status (ID), Einschränkung uid_fk fremdschlüssel (UID) Referenzen Benutzer (ID)); /*===================================================ieben =====================================================ieben =====================================================ieben =====================================================ieben Preis des Produkts zum Zeitpunkt des Kaufs*/ Preis -Dezimalzahl (8,2),/*Menge erworben*/ Nummer in nicht null,/*Produktnummer*/ pid int,/*Diese Werbebuchung, die Bestellnummer*/ fid int, Einschränkungen PID_FK Fremd Key (PID) Referenzen Produkt (ID), Einschränkung fid_fk fremdschlüssel (fid) referenz (id).
Dann konvertieren wir diese Tabellen durch Reverse Engineering in Pojo, sodass wir nicht auf Details eingehen.
2. Backstage -Logik des Einkaufswagens
2.1 Logik der Serviceschicht
Wenn ein Benutzer dem Einkaufswagen ein Produkt hinzufügt, müssen wir zunächst die Produktinformationen über die Produkt -ID erhalten und das Produkt dann dem Einkaufswagen hinzufügen. Vor dem Hinzufügen müssen wir zunächst feststellen, ob in der aktuellen Sitzung ein Einkaufswagen vorhanden ist. Wenn nicht, müssen wir zuerst einen Einkaufswagen erstellen. In diesem Fall werden wir den aktuellen Einkaufsgegenstand dem Einkaufswagen hinzufügen. Vor dem Hinzufügen müssen wir feststellen, ob der Einkaufsartikel bereits im Einkaufswagen vorhanden ist. Wenn es existiert, erhöhen Sie einfach die entsprechende Einkaufsmenge. Wenn es nicht vorhanden ist, fügen Sie es hinzu, berechnen Sie den Gesamteinkaufspreis und sparen Sie schließlich den Einkaufswagen in der Sitzung. Siehe das Diagramm unten für den gesamten Prozess:
Lassen Sie uns als nächstes die spezifische Logik implementieren und zunächst zwei neue Service -Schnittstellen erstellen: SORDERService und FerderService. Es gibt zwei Methoden, die hauptsächlich in SORDERService definiert sind: Verwandeln Sie die vom Benutzer hinzugefügten Artikel in Einkaufsartikel und fügen Sie dann die Einkaufsgegenstände in den Einkaufswagen hinzu. FerderService definiert hauptsächlich die Methode zur Berechnung des Gesamtpreises des Einkaufswagens wie folgt:
// SORDERService Interface Public Interface SORDERService erweitert BaseSeService <Sorder> {// Einkaufsartikel hinzufügen und einen neuen Einkaufswagen Public Forder addSorder (Forder Forder, Produktprodukt) zurückgeben; // Produktdaten in Einkaufsgegenstände öffentlicher Sorder ProductToSord (Produktprodukt) umwandeln; } // FOderService Interface Public Interface FderderService erweitert BaseSeService <Fder> {// Berechnen Sie den gesamten Einkaufspreis Public Double Clutotal (Forder Forder); } Dann implementieren wir diese beiden Schnittstellen im Detail:
// SORDERServiceImpl -Implementierungsklasse @Service ("SORDERService") öffentliche Klasse SORDERServiceImpl erweitert BaseSeServiceImpl <Sorder> implementiert SORDERService {@Override Public Forder addSorder (Forder Forder, Produktprodukt) {boolean ishave = false; // verwendet, um zu markieren, ob es doppelte Einkaufszüge gibt // den aktuellen Einkaufsartikel Sorder soorder = productToSord (Produkt) erhalten; // Beurteilen Sie, ob der aktuelle Einkaufsgegenstand doppelt ist. Wenn es doppelt ist, fügen Sie die Menge für (SORDER ALT: FADER.GetSorders ()) {if (old.getProduct (). iShave = wahr; brechen; }} // Der aktuelle Einkaufsartikel existiert nicht im Einkaufswagen. Fügen Sie ihn einfach hinzu, wenn (! IShave) {fder.getSorders () add (sorder); } return forder; } @Override public Sorder ProductToSordo (Produktprodukt) {Sorder soorder = new Sorder (); Soorder.SetName (product.getName ()); Soorder.SetNumber (1); Soorder.SetPrice (product.getPrice ()); Soorder.SetProduct (Produkt); Soorder zurückgeben; }} // fderderServiceImpl implementierungen @Service ("FerderService") öffentliche Klasse FderderServiceImpl erweitert BaseSeServiceImpl <Fder> implementiert FerderService {@Override öffentliche Doppel -Kupplung (Forder Forder) {Double Total = 0,0; für (Sorder Soorder: fder.getSorders ()) {Total += soorder.getNumber () * soorder.getPrice (); } Return Total; }} Dann müssen wir diese beiden Bohnen zur Verwendung durch Sorderaction in die Basiswirkung injizieren:
@Controller ("Baseaction") @Scope ("Prototyp") Basisanlagen der öffentlichen Klasse <T> erweitert ActionVerformation implements RequestAwe, SessionAware, ApplicationAware, modeldiven <T> {// andere irrelevante Code weglassen ... @resource Protected Fasserservice Forenservice; @Resource geschützte Sorderservice Sorderservice; } OK, die Logik der Serviceschicht ist fertig und als nächstes werden wir den Aktionsteil durchführen:
2.2 Aktionslogik
Wir erstellen eine neue Sorderaktion und folgen dem in dem obigen Logikdiagramm angezeigten Vorgang, um die Logik des Hinzufügens von Einkaufswagen zu vervollständigen. Der Code ist wie folgt:
@Controller @Scope ("Prototyp") öffentliche Klasse Sorderaction erweitert Basisaction <Sorder> {public String addSorder () {// 1. Erhalten Sie die entsprechenden Produktdaten gemäß Product.ID product product = productService.get (model.getProduct (). GetId ()); // 2. Stellen Sie fest, ob es in der aktuellen Sitzung einen Einkaufswagen gibt. Wenn nicht, erstellen Sie if (session.get ("fder") == null) {// Erstellen Sie einen neuen Einkaufswagen und speichern Sie ihn in Sitzungen. } // 3. Produktinformationen in Soorder konvertieren und in den Einkaufswagen hinzufügen (urteilen, ob der Einkaufsgegenstand dupliziert ist) fderer = (fder) session.get ("fder"); forder = SoorderService.AddsReder (Forder, Produkt); // 4. Berechnen Sie den Gesamtpreis des Einkaufsfassers. // 5. Speichern Sie den neuen Einkaufswagen in Sitzung.put ("Forder", Forder); zurück "showcart"; }} Konfigurieren Sie die Datei struts.xml:
<action name = "sorder_*" method = "{1}"> <result name = "showCart">/showcart.jsp </result> </action>Dann springen Sie zum Einkaufswagen -Display -Seite showcart.jsp. Das Front-End-Programm über den Einkaufswagen-Teil in Showcart.jsp lautet wie folgt:
3. Sprung des Links an der Rezeption
Alle Hintergrundteile sind durchgeführt. Fügen Sie als nächstes die Seite mit der Rezeption detail.jsp zur Linkadresse des Einkaufswagens hinzu, um auf die Sorderaction zuzugreifen:
Dies wird richtig springen. Schauen wir uns den spezifischen Effekt der Einkaufswagen -Anzeigeseite an:
Auf diese Weise werden die grundlegenden Funktionen unseres Einkaufswagens abgeschlossen und wir werden später einige Verbesserungen vornehmen.
Originaladresse: http://blog.csdn.net/eson_15/article/details/51418350
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.