<% '---------------------------------------------+ ' Tpp8 商城 购物车类 + '---------------------------------------------+ ' Email : allinhands@gmail.com ' Version : 1.0.3 ' Begin At : 2005-05-27 ' 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 = "" & vbCrlf disStr=disStr & "" & vbCrlf disStr=disStr & "IDNamePriceNumberTotal Price" & vbCrlf disStr=disStr & "" & vbCrlf For i = 0 To intItemCount-1 disStr=disStr & "" & vbCrlf disStr=disStr & "" & arrItems(i).ID &"" & arrItems(i).Name &"" & arrItems(i).Price &"" & arrItems(i).Number &"" & arrItems(i).Price*arrItems(i).Number &"" & vbCrlf disStr=disStr & "" & vbCrlf Next disStr=disStr & "" & vbCrlf disStr=disStr & "共有物品:"& intItemCount &",总价值"& flTotalPrice &"" & vbCrlf disStr=disStr & "" & vbCrlf disStr = disStr & "" & 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("增加物品1,数量2") State = MyCart.AddItem(1,2) '0 添加成功 '1 购物车已满 '2 物品已经存在 '3 物品在数据库中不存在,或者不可用 if State = 0 Then Response.write("添加成功") ElseIf State = 1 Then Response.write("购物车已满") ElseIf State = 2 Then Response.write("物品已经存在") ElseIf State = 3 then Response.write("物品在数据库中不存在") End if MyCart.Display() Response.write("增加物品2,数量6") State = MyCart.AddItem(2,6) if State = 0 Then Response.write("添加成功") ElseIf State = 1 Then Response.write("购物车已满") ElseIf State = 2 Then Response.write("物品已经存在") ElseIf State = 3 then Response.write("物品在数据库中不存在") End if MyCart.Display() Response.write("更新物品2,数量16") State = MyCart.UpdateItem(2,16) if State = 0 Then Response.write("添加成功") ElseIf State = 1 Then Response.write("物品不存在") ElseIf State = 2 Then Response.write("数据错误") End if MyCart.Display() Response.write("更新物品2,数量-1") State = MyCart.UpdateItem(2,-1) if State = 0 Then Response.write("添加成功") ElseIf State = 1 Then Response.write("物品不存在") ElseIf State = 2 Then Response.write("数据错误") End if MyCart.Display() Response.write("删除物品1") State = MyCart.DelItem(1) if State = 0 Then Response.write("删除成功") ElseIf State = 1 Then Response.write("物品不存在") End if MyCart.Display() %>