第四次团队作业

一、代码仓库地址

 https://github.com/SE17/Order-food-on-the-Internet

二、Quick Start(简易快速使用指南)

1.注册功能

 第四次团队作业_第1张图片

 

2.登录功能

 

 

3.浏览商品

 
 第四次团队作业_第2张图片

 

3.1查看商品详情

 第四次团队作业_第3张图片

 

3.2搜索商品

 第四次团队作业_第4张图片
 第四次团队作业_第5张图片

 

4.个人订单

 第四次团队作业_第6张图片

 

5.我的收藏

 第四次团队作业_第7张图片

 

三、代码实现:阐述是如何实现产品的,文字内容用于辅助阅读源代码(比如代码目录结构),可以粘一些核心代码,不要大段大段代码地贴。

 

.net代码目录

数据库代码目录

 第四次团队作业_第8张图片  第四次团队作业_第9张图片

 

举例说明:商品浏览模块

.net代码视图层

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="goodlist.aspx.cs" Inherits="OnlineOrder.goodlist" %>

 

 

    无标题页

   

   

   

        首页      

        注册

        登录

   

    

   

   

   

           

       

   

      

   

   

    

    

        

        

             价格

             商品库存数

        

       

        

             onselectedindexchanged="DropDownList2_SelectedIndexChanged">

             升序

             降序

        

       

    

  

   

   

   

      

      

            BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px"

            CellPadding="4" AllowPaging="True" EmptyDataText="暂无记录" >

           

           

               

                

                   

                       

                   

               

               

                                       

                

               

                   

                       

                   

               

               

               

                  HeaderText="查看详情" DataNavigateUrlFormatString="GoodDetail.aspx?pro_id={0}" />

          

           

           

           

           

              

   

       

   

   

   

          

   

.net代码控制层(调用数据库接口)

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

using System.Data.SqlClient;

 

namespace OnlineOrder

{

    public partial class goodlist : System.Web.UI.Page

    {

        SqlConnection con;

        String ConnectionString = "Data Source=localhost;Persist Security Info=True;User ID=sa;Password=root; Initial Catalog=OnlineOrderVegetable;";

        SqlCommand com;

        SqlDataAdapter da;

        DataTable table;

        protected void Page_Load(object sender, EventArgs e)

        {

            if (Session["webuser_id"] != null)

            {

                HyperLink1.Text = Session["account"].ToString();

                HyperLink1.NavigateUrl = "UserInfo.aspx";

                HyperLink2.Text = "购物车";

                HyperLink2.NavigateUrl = "Cart.aspx";

            }

            //搜索框搜索

            if (Request.QueryString["key"] != null)

            {

                String key = Request.QueryString["key"];

          

                produceSearch(key);                          

            

            }

             //类别搜索

            else

            {

                produceSelect();

 

            }      

        }

        //关键字模糊查询

        protected void produceSearch(string key)

        {

            String sql = "proc_ProduceNameSelect";

            con = new SqlConnection(ConnectionString);

            //打开连接

            con.Open();

            //生成SqlCommand对象

            com = new SqlCommand(sql, con);

            //选择执行命令,存储过程

            com.CommandType = CommandType.StoredProcedure;

            //添加参数

            com.Parameters.AddWithValue("@key", key);

            //执行存储过程

            com.ExecuteNonQuery();

            //生成Adapter对象

            da = new SqlDataAdapter();

            //生成table

            table = new DataTable();

            //Adapter对象获取数据

            da.SelectCommand = com;

            //Adapter对象填充数据

            da.Fill(table);

            //释放对象

            con.Close();

            //数据绑定

            GridView1.DataSource = table;

            GridView1.DataBind();

        }

        //商品类别检索

        protected void produceSelect()

        {

            String sql = "proc_ProduceSelect";

            String protype_id = Request.QueryString["protype_id"];

            con = new SqlConnection(ConnectionString);

            //打开连接

            con.Open();

            //生成SqlCommand对象

            com = new SqlCommand(sql,con);

          

            //选择执行命令,存储过程

            com.CommandType = CommandType.StoredProcedure;

            //添加参数

            com.Parameters.AddWithValue("@protype_id", protype_id);

            //调用数据库接口存储过程proc_ProduceSelect

            com.ExecuteNonQuery();

            //生成Adapter对象

            da = new SqlDataAdapter();

            //生成table

            table = new DataTable();

            //Adapter对象获取数据

            da.SelectCommand = com;

            //Adapter对象填充数据

            da.Fill(table);

            //释放对象

            con.Close();

            //数据绑定

            GridView1.DataSource = table;

            GridView1.DataBind();

        }

 

       //响应用户搜索请求

        protected void Button1_Click(object sender, EventArgs e)

        {

            string key;

            string url;

            key = TextBox1.Text;

            //弹出对话框?

            if (key == null || key == "")

            {

 

            }

            else

            {

                url = "goodlist.aspx?key=" + key;

                Response.Redirect(url);

            }

        }

      

    }

}

Sql 存储过程接口proc_ProduceSelect

--存储过程:proc_ProduceSelect

--功能:分类浏览商品

--输入参数:商品类别编号、排序字段、排序类别

ALTER PROC proc_ProduceSelect

@protype_id char(10)=NULL,

@order_name varchar(10)=NULL,

@order_type varchar(10)='ASC'

AS

BEGIN

         DECLARE @sql varchar(255)

         IF(@order_name IS NULL)

         BEGIN

                   SELECT pro_id ,pro_name 商品名称,protype_name 商品类别,pro_icon 商品图片,pro_price 商品价格,pro_disprice 促销价,pro_amount 商品数量,collect_num 收藏次数

                   FROM produce INNER JOIN protype

                   ON produce.protype_id = protype.protype_id

                   WHERE (@protype_id = produce.protype_id OR @protype_id IS NULL)

         END

         ELSE

         BEGIN

                   SET @sql = 'SELECT pro_id 商品编号,pro_name 商品名称,protype_name 商品类别,pro_icon 商品图片,pro_price 商品价格,pro_amount 商品数量

                   FROM produce INNER JOIN protype '+

                   'ON produce.protype_id = protype.protype_id '+

                   'WHERE ( produce.protype_id '+'LIKE '+@protype_id +' )'

                   +' ORDER BY '+@order_name+' '+@order_type

                   EXEC(@sql)

         END

END

GO

 

四、 软件测试:阐述如何测试所开发的软件。

由于本产品还没有正式发布,无法让测试人员进行黑盒测试。

此处选择让开发人员一边开发一边进行白盒测试:测试存储过程能否正常执行功能。

举例模块:用户下订单模块

 

--①生成用户2的一条订单,返回订单编号给用户

DECLARE @order_id int

EXEC proc_OrdersInsert 2,4,@order_id OUTPUT

PRINT '订单编号:'+CAST(@order_id AS VArchar(4))

GO

(1 行受影响)

订单编号:24

 

--②根据订单编号和订单中的商品系统自动生成订单明细

--若其中某种商品库存不足,则删除该订单。

 

--a.若其中某种商品库存不足,则删除该订单。

EXEC proc_OrdersInfoInsert 20,1,3

GO

--查看该订单20,已被删除。

EXEC proc_OrdersInfoOrderIdSelect 20

GO

没有该订单!

--b. 给24号订单添加1件1号商品,4件2号商品

EXEC proc_OrdersInfoInsert 24,1,1

GO

EXEC proc_OrdersInfoInsert 24,2,4

GO

 

--③生成给用户的订单,订单状态默认为‘待付款’

EXEC proc_OrdersInfoOrderIdSelect 24

GO

 

 

--④用户给24号订单付款,扣除用户余额

--付款前

EXEC proc_WebuserSelect '15985700852'

GO

 

--付款结果,成功之后系统根据用户最近下单情况,自动推荐两种类别的随机产品给用户。

DECLARE @result varchar(20)

EXEC proc_OrderStateUpdatePay 24,2,@result OUTPUT

PRINT @result

GO

(1 行受影响)

付款成功

 第四次团队作业_第10张图片

--付款后,用户账号余额情况

EXEC proc_WebuserSelect '15985700852'

GO

 

 

--⑤用户确认收货订单24号

EXEC proc_OrderStateUpdateReceive 24

GO

成功收到24号订单,该订单等待您的评价~

(1 行受影响)

 

--⑥2号用户对刚才收到的24号订单的商品做出评价

--对2号商品的评价

exec proc_OrderStateUpdateComment 2,24,"食材新鲜美味!还会回购的。"

GO

--对1号商品的评价

exec proc_OrderStateUpdateComment 1,24,"味道一般吧。"

GO

 

 

--⑦若用户喜欢哪一件商品,可以对商品进行收藏

--2号用户对2号商品进行了收藏

exec proc_CollectInsert 2,2

成功收藏2号商品!

 

你可能感兴趣的:(第四次团队作业)