<!--#include file="../Function.asp" -->
<%
'---------------------------------------------+
' Tpp8 商城 购物车类 +
'---------------------------------------------+
' Email : allinhands@gmail.com
' Version : 1.0.3
' Last Update : 2005-05-28
'/==============\
' 购物车类
'\==============/
Class Cart
Private intItemCount
Private intCurrentUID
Private arrItems(50)
Private flTotalPrice
'==============================================
'初始化类
'==============================================
Private Sub Class_Initialize()
intItemCount = 0
flTotalPrice = 0
'intCurrentUID = Session("MyInfo").UserID
End Sub
'==============================================
'定义公共属性 [int] ItemCount
'方法 Get
'==============================================
Public Property Get ItemCount
ItemCount = intItemCount
End Property
'==============================================
'定义公共属性 [float] TotalPrice
'方法 Get
'==============================================
Public Property Get TotalPrice
TotalPrice = flTotalPrice
End Property
'==============================================
'定义公共方法 [int] AddItem(ItemID,Number) 添加物品
'--------------------------------------
'参数列表:
'ItemID 物品ID
'Number 物品数量
'--------------------------------------
'返回值
'0 添加成功
'1 购物车已满
'2 物品已经存在
'3 物品在数据库中不存在,或者不可用
'--------------------------------------
'==============================================
Public Function AddItem(ItemID,Number)
'如果购物车的货物超过最大限度,则返回1
If intItemCount = 50 Then
AddItem = 1
Exit Function
End If
'检测物品是否存在,是则返回2
If Exsit(ItemID) <> -1 Then
AddItem = 2
Exit Function
End if
'添加项目
Set Items = new ShopItem
Items.ID = ItemID
Items.Number = Number
Items.GetInfo()
If Items.Exsit Then
Set arrItems(intItemCount) = Items
'增加数量
intItemCount = intItemCount + 1
flTotalPrice = flTotalPrice + Items.Number*Items.Price
AddItem = 0
Else
AddItem = 3
Exit Function
End If
End Function
'==============================================
'定义公共方法 [int] DelItem(ItemID) 删除物品
'--------------------------------------
'参数列表:
'ItemID 物品ID
'--------------------------------------
'返回值:
'0 添加成功
'1 物品不存在
'--------------------------------------
'==============================================
Public Function DelItem(ItemID)
j=Exsit(ItemID)
If j=-1 then
DelItem=1
Exit function
End If
flTotalPrice=flTotalPrice - arrItems(j).Price*arrItems(j).Number
For i=j To intItemCount-2
Set arrItems(i) = arrItems(i+1)
Next
arrItems(intItemCount)=Null
intItemCount=intItemCount-1
DelItem=0
End Function
'==============================================
'定义公共方法 [int] UpdateItem(ItemID,Number) 更新物品数据
'--------------------------------------
'参数列表:
'ItemID 物品ID
'Number 物品数量
'--------------------------------------
'返回值
'0 更新成功
'1 物品不存在
'2 数据错误
'==============================================
Public Function UpdateItem(ItemID,Number)
If Number < 0 Then '如果数量小于0,返回错误信息
UpdateItem = 2
Exit Function
ElseIf Number = 0 Then '如果数量等于0,删除项目
UpdateItem = DelItem(ItemID)
Exit Function
End if
i = Exsit(ItemID)
If i = -1 then '检测物品是否存在
UpdateItem=1
Exit function
End If
flTotalPrice=flTotalPrice - arrItems(i).Price*arrItems(i).Number
arrItems(i).Number=Number '更新数据
flTotalPrice=flTotalPrice + arrItems(i).Price*arrItems(i).Number
UpdateItem = 0
End Function
'==============================================
'定义公共方法 Clear() 清空购物车
'--------------------------------------
'参数列表 (无)
'--------------------------------------
'返回值 (无)
'==============================================
Public Sub Clear()
For i=j To intItemCount-1
arrItems(i)=Null
Next
intItemCount=0
End Sub
'==============================================
'定义私有方法 Exsit(ItemID) 检测物品是否存在
'--------------------------------------
'参数列表:
'ItemID 物品ID
'--------------------------------------
'返回值
'-1 物品不存在
'其他 物品所在索引
'==============================================
Private Function Exsit(ItemID)
For i = 0 To intItemCount-1
If ItemID = arrItems(i).ID Then
Exsit = i
Exit Function
End If
Next
Exsit = -1
End Function
'==============================================
'定义公共方法 Display() 显示
'--------------------------------------
'参数列表 (无)
'--------------------------------------
'返回值 (无)
'==============================================
Public Sub Display()
Dim disStr
disStr = "<Table BgColor=""#F5F5F5"" border=""1"" cellspacing=""1"" cellpadding=""3"" Width=""400"">" & vbCrlf
disStr=disStr & "<Tr>" & vbCrlf
disStr=disStr & "<td>ID</TD><td>Name</TD><td>Price</TD><td>Number</TD><td>Total Price</TD>" & vbCrlf
disStr=disStr & "</Tr>" & vbCrlf
For i = 0 To intItemCount-1
disStr=disStr & "<Tr>" & vbCrlf
disStr=disStr & "<td BgColor=""#FFFFFF"">" & arrItems(i).ID &"</TD><td BgColor=""#FFFFFF"">" & arrItems(i).Name &"</TD><td BgColor=""#FFFFFF"">" & arrItems(i).Price &"</TD><td BgColor=""#FFFFFF"">" & arrItems(i).Number &"</TD><td BgColor=""#FFFFFF"">" & arrItems(i).Price*arrItems(i).Number &"</TD>" & vbCrlf
disStr=disStr & "</Tr>" & vbCrlf
Next
disStr=disStr & "<Tr>" & vbCrlf
disStr=disStr & "<td colspan=5 BgColor=""#FFFFFF"">共有物品:"& intItemCount &",总价值"& flTotalPrice &"</TD>" & vbCrlf
disStr=disStr & "</Tr>" & vbCrlf
disStr = disStr & "</Table>" & vbCrlf
Response.write disStr
End Sub
End Class
'/==============\
' 商品类
'\==============/
Class ShopItem
Private strName
Private intID
Private flPrice
Private flMarkeyPrice
Private intNumber
Private boolExsit
Private Sub Class_Initialize()
boolExsit = false
End Sub
'==============================================
'定义公共属性 [string] Name
'方法 Get Let
'==============================================
Public Property Get Name
Name = strName
End Property
'==============================================
'定义公共属性 [int] ID
'方法 Get Let
'==============================================
Public Property Get ID
ID = intID
End Property
Public Property Let ID(ByVal intVar)
intID = intVar
End Property
'==============================================
'定义公共属性 [float] Price
'方法 Get
'==============================================
Public Property Get Price
Price = flPrice
End Property
'==============================================
'定义公共属性 [bool] Exsit
'方法 Get
'==============================================
Public Property Get Exsit
Exsit = boolExsit
End Property
'==============================================
'定义公共属性 [float] MarkeyPrice
'方法 Get
'==============================================
Public Property Get MarkeyPrice
MarkeyPrice = flMarkeyPrice
End Property
'==============================================
'定义公共属性 [int] Number
'方法 Get Let
'==============================================
Public Property Get Number
Number = intNumber
End Property
Public Property Let Number(ByVal intVar)
intNumber = intVar
End Property
Public Sub GetInfo()
SQL = "SELECT * FROM StoreItems WHERE (StoreItems_ID = " & intID &") AND (StoreItems_State = 0 OR StoreItems_State = 1)"
'Response.write sql
'OpenConn()
Set RsItemInfo=Server.CreateObject("Adodb.Recordset")
RsItemInfo.Open SQL,conn,1,1
If RsItemInfo.Eof Then
boolExsit = False
Else
boolExsit = True
strName = RsItemInfo("StoreItems_Name")
flPrice = RsItemInfo("StoreItems_Price")
flMarkeyPrice = RsItemInfo("StoreItems_VIPPrice")
End If
RsItemInfo.Close()
Set RsItemInfo = Nothing
End Sub
End Class
Set MyCart = new Cart
Response.write("<hr size=1 color=red>增加物品1,数量2<br>")
State = MyCart.AddItem(1,2)
'0 添加成功
'1 购物车已满
'2 物品已经存在
'3 物品在数据库中不存在,或者不可用
if State = 0 Then
Response.write("添加成功<br>")
ElseIf State = 1 Then
Response.write("购物车已满<br>")
ElseIf State = 2 Then
Response.write("物品已经存在<br>")
ElseIf State = 3 then
Response.write("物品在数据库中不存在<br>")
End if
MyCart.Display()
Response.write("<hr size=1 color=red>增加物品2,数量6<br>")
State = MyCart.AddItem(2,6)
if State = 0 Then
Response.write("添加成功<br>")
ElseIf State = 1 Then
Response.write("购物车已满<br>")
ElseIf State = 2 Then
Response.write("物品已经存在<br>")
ElseIf State = 3 then
Response.write("物品在数据库中不存在<br>")
End if
MyCart.Display()
Response.write("<hr size=1 color=red>更新物品2,数量16<br>")
State = MyCart.UpdateItem(2,16)
if State = 0 Then
Response.write("添加成功<br>")
ElseIf State = 1 Then
Response.write("物品不存在<br>")
ElseIf State = 2 Then
Response.write("数据错误<br>")
End if
MyCart.Display()
Response.write("<hr size=1 color=red>更新物品2,数量-1<br>")
State = MyCart.UpdateItem(2,-1)
if State = 0 Then
Response.write("添加成功<br>")
ElseIf State = 1 Then
Response.write("物品不存在<br>")
ElseIf State = 2 Then
Response.write("数据错误<br>")
End if
MyCart.Display()
Response.write("<hr size=1 color=red>删除物品1<br>")
State = MyCart.DelItem(1)
if State = 0 Then
Response.write("删除成功<br>")
ElseIf State = 1 Then
Response.write("物品不存在<br>")
End if
MyCart.Display()
%>