Bladeren bron

修改bug

zhoufan 8 jaren geleden
bovenliggende
commit
8a3c53ef71

+ 1 - 0
ShopMobile/Admin/Defult.Master

@@ -78,6 +78,7 @@
78 78
 
79 79
                         <li><a><span class="menu-text">====可爱的分割线====</span></a></li>
80 80
                         <li><a href="UserList.aspx"><i class="icon-user"></i><span class="menu-text">用户管理</span></a></li>
81
+                        <li><a href="PictureList.aspx"><i class="icon-home"></i><span class="menu-text">首页轮播图管理</span></a></li>
81 82
                         <li><a href="ProductCategoryList.aspx"><i class="icon-user"></i><span class="menu-text">分类管理</span></a></li>
82 83
                         <li><a href="ProductList.aspx"><i class="icon-home"></i><span class="menu-text">商品管理</span></a></li>
83 84
                         <li><a href="ProductEdit.aspx"><i class="icon-home"></i><span class="menu-text">商品录入</span></a></li>

+ 28 - 34
ShopMobile/Admin/OrderDetails.aspx

@@ -16,51 +16,45 @@
16 16
                             <td align="center" class="text-primary">订单号</td>
17 17
                             <td>
18 18
                                 <asp:Label ID="OrderID" runat="server" Text="Label"></asp:Label></td>
19
-                            <td align="center" class="text-primary">下单人</td>
19
+                            <td align="center" class="text-primary">支付总金额</td>
20 20
                             <td>
21
-                                <asp:Label ID="Receiver" runat="server" Text="Label"></asp:Label>
22
-                                <%#Eval("Receiver") %></td>
23
-                            <td align="center" class="text-primary">快递类型</td>
21
+                                <asp:Label ID="PayPrice" runat="server" Text="Label"></asp:Label>
22
+                             </td>
23
+                            <td align="center" class="text-primary">信用总点数</td>
24 24
                             <td>
25
-                                <asp:Label ID="Express" runat="server" Text="Label"></asp:Label>
26
-                                <%#Eval("Address") %></td>
27
-                            <td align="center" class="text-primary">快递单号</td>
25
+                                <asp:Label ID="Points" runat="server" Text="Label"></asp:Label>
26
+                             </td>
27
+                            <td align="center" class="text-primary">状态</td>
28 28
                             <td>
29
-                                <asp:Label ID="ExpressNo" runat="server" Text="Label"></asp:Label>
30
-                                <%#Eval("Address") %></td>
29
+                                <asp:Label ID="lbltz" runat="server" Text="Label"></asp:Label></td>
30
+                            
31
+                            
31 32
                         </tr>
32 33
                         <tr>
33
-                            <td align="center" class="text-primary">省</td>
34
-                            <td>
35
-                                <asp:Label ID="Province" runat="server" Text="Label"></asp:Label>
36
-                                <%#Eval("Province") %></td>
37
-                            <td align="center" class="text-primary">市</td>
34
+                            <td align="center" class="text-primary">收货人</td>
38 35
                             <td>
39
-                                <asp:Label ID="City" runat="server" Text="Label"></asp:Label>
40
-                                <%#Eval("City") %></td>
41
-                            <td align="center" class="text-primary">县/区</td>
42
-                            <td>
43
-                                <asp:Label ID="County" runat="server" Text="Label"></asp:Label>
44
-                                <%#Eval("County") %></td>
45
-                            <td align="center" class="text-primary">地址</td>
36
+                                <asp:Label ID="Receiver" runat="server" Text="Label"></asp:Label>
37
+                            </td>
38
+                            <td align="center" class="text-primary">联系电话</td>
46 39
                             <td>
40
+                                <asp:Label ID="TelePhone" runat="server" Text="Label"></asp:Label>
41
+                            </td>
42
+                            <td align="center" class="text-primary">收货地址</td>
43
+                            <td colspan="3">
47 44
                                 <asp:Label ID="Address" runat="server" Text="Label"></asp:Label>
48
-                                <%#Eval("Address") %></td>
45
+                                </td>
49 46
                         </tr>
50 47
                         <tr>
51
-                            <td align="center" class="text-primary">电话</td>
52
-                            <td>
53
-                                <asp:Label ID="TelePhone" runat="server" Text="Label"></asp:Label>
54
-                                <%#Eval("Address") %></td>
55
-
56
-                            <td align="center" class="text-primary">支付总金额</td>
57
-                            <td>
58
-                                <asp:Label ID="PayPrice" runat="server" Text="Label"></asp:Label>
59
-                                <%#Eval("Address") %></td>
60
-                            <td align="center" class="text-primary">信用总点数</td>
48
+                            
49
+                            <td align="center" class="text-primary">快递类型</td>
61 50
                             <td>
62
-                                <asp:Label ID="Points" runat="server" Text="Label"></asp:Label>
63
-                                <%#Eval("Address") %></td>
51
+                                <asp:Label ID="Express" runat="server" Text="Label"></asp:Label>
52
+                            </td>
53
+                            <td align="center" class="text-primary">快递单号</td>
54
+                            <td colspan="5">
55
+                                <asp:Label ID="ExpressNo" runat="server" Text="Label"></asp:Label>
56
+                            </td>
57
+                            
64 58
                         </tr>
65 59
                     </table>
66 60
                 </div>

+ 25 - 4
ShopMobile/Admin/OrderDetails.aspx.cs

@@ -25,16 +25,37 @@ namespace ShopMobile.Admin
25 25
             Model.PT_Order_Header model = new Bll.PT_Order_Header().GetModel(OrderID);
26 26
             #region 对应值
27 27
             this.OrderID.Text = model.OrderID;
28
-            this.Province.Text = model.Province;
29
-            this.City.Text = model.City;
30 28
             this.Receiver.Text = model.Receiver;
31
-            this.County.Text = model.County;
32
-            this.Address.Text = model.Address;
29
+            this.Address.Text = model.Province+ model.City+model.County+model.Address;
33 30
             this.TelePhone.Text = model.Telephone;
34 31
             this.Express.Text = model.Express;
35 32
             this.ExpressNo.Text = model.ExpressNo;
36 33
             this.PayPrice.Text = model.PayPrice.ToString();
37 34
             this.Points.Text = model.Points.ToString();
35
+
36
+            string strtzname = string.Empty;
37
+            switch (model.State)
38
+            {
39
+                case 0:
40
+                    strtzname = "未支付";
41
+                    break;
42
+                case 1:
43
+                    strtzname = "已支付";
44
+                    break;
45
+                case 2:
46
+                    strtzname = "已发货";
47
+                    break;
48
+                case 3:
49
+                    strtzname = "已收货";
50
+                    break;
51
+                case 4:
52
+                    strtzname = "已完成";
53
+                    break;
54
+                case 9:
55
+                    strtzname = "已取消";
56
+                    break;
57
+            }
58
+            this.lbltz.Text = strtzname;
38 59
             #endregion
39 60
 
40 61
         }

+ 14 - 32
ShopMobile/Admin/OrderDetails.aspx.designer.cs

@@ -22,58 +22,49 @@ namespace ShopMobile.Admin {
22 22
         protected global::System.Web.UI.WebControls.Label OrderID;
23 23
         
24 24
         /// <summary>
25
-        /// Receiver 控件。
26
-        /// </summary>
27
-        /// <remarks>
28
-        /// 自动生成的字段。
29
-        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
30
-        /// </remarks>
31
-        protected global::System.Web.UI.WebControls.Label Receiver;
32
-        
33
-        /// <summary>
34
-        /// Express 控件。
25
+        /// PayPrice 控件。
35 26
         /// </summary>
36 27
         /// <remarks>
37 28
         /// 自动生成的字段。
38 29
         /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
39 30
         /// </remarks>
40
-        protected global::System.Web.UI.WebControls.Label Express;
31
+        protected global::System.Web.UI.WebControls.Label PayPrice;
41 32
         
42 33
         /// <summary>
43
-        /// ExpressNo 控件。
34
+        /// Points 控件。
44 35
         /// </summary>
45 36
         /// <remarks>
46 37
         /// 自动生成的字段。
47 38
         /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
48 39
         /// </remarks>
49
-        protected global::System.Web.UI.WebControls.Label ExpressNo;
40
+        protected global::System.Web.UI.WebControls.Label Points;
50 41
         
51 42
         /// <summary>
52
-        /// Province 控件。
43
+        /// lbltz 控件。
53 44
         /// </summary>
54 45
         /// <remarks>
55 46
         /// 自动生成的字段。
56 47
         /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
57 48
         /// </remarks>
58
-        protected global::System.Web.UI.WebControls.Label Province;
49
+        protected global::System.Web.UI.WebControls.Label lbltz;
59 50
         
60 51
         /// <summary>
61
-        /// City 控件。
52
+        /// Receiver 控件。
62 53
         /// </summary>
63 54
         /// <remarks>
64 55
         /// 自动生成的字段。
65 56
         /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
66 57
         /// </remarks>
67
-        protected global::System.Web.UI.WebControls.Label City;
58
+        protected global::System.Web.UI.WebControls.Label Receiver;
68 59
         
69 60
         /// <summary>
70
-        /// County 控件。
61
+        /// TelePhone 控件。
71 62
         /// </summary>
72 63
         /// <remarks>
73 64
         /// 自动生成的字段。
74 65
         /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
75 66
         /// </remarks>
76
-        protected global::System.Web.UI.WebControls.Label County;
67
+        protected global::System.Web.UI.WebControls.Label TelePhone;
77 68
         
78 69
         /// <summary>
79 70
         /// Address 控件。
@@ -85,31 +76,22 @@ namespace ShopMobile.Admin {
85 76
         protected global::System.Web.UI.WebControls.Label Address;
86 77
         
87 78
         /// <summary>
88
-        /// TelePhone 控件。
89
-        /// </summary>
90
-        /// <remarks>
91
-        /// 自动生成的字段。
92
-        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
93
-        /// </remarks>
94
-        protected global::System.Web.UI.WebControls.Label TelePhone;
95
-        
96
-        /// <summary>
97
-        /// PayPrice 控件。
79
+        /// Express 控件。
98 80
         /// </summary>
99 81
         /// <remarks>
100 82
         /// 自动生成的字段。
101 83
         /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
102 84
         /// </remarks>
103
-        protected global::System.Web.UI.WebControls.Label PayPrice;
85
+        protected global::System.Web.UI.WebControls.Label Express;
104 86
         
105 87
         /// <summary>
106
-        /// Points 控件。
88
+        /// ExpressNo 控件。
107 89
         /// </summary>
108 90
         /// <remarks>
109 91
         /// 自动生成的字段。
110 92
         /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
111 93
         /// </remarks>
112
-        protected global::System.Web.UI.WebControls.Label Points;
94
+        protected global::System.Web.UI.WebControls.Label ExpressNo;
113 95
         
114 96
         /// <summary>
115 97
         /// RpList 控件。

+ 11 - 45
ShopMobile/Admin/OrderList.aspx

@@ -14,7 +14,7 @@
14 14
             <div class="col-xs-12" style="margin-bottom: 10px;">
15 15
                 <div class="row">
16 16
                     <div class="col-xs-8">
17
-                        下单人名称:<asp:TextBox ID="txtname" runat="server"></asp:TextBox>
17
+                        订单号:<asp:TextBox ID="txtname" runat="server"></asp:TextBox>
18 18
                     </div>
19 19
                     <div class="col-xs-4">
20 20
                         <asp:Button ID="btnsearch" class="btn btn-primary btn-sm" runat="server" Text="搜索" OnClick="btnsearch_Click" />
@@ -29,13 +29,9 @@
29 29
                             <tr>
30 30
                                 <th>订单号
31 31
                                 </th>
32
-                                <th>下单
32
+                                <th>收货
33 33
                                 </th>
34
-                                <th>省
35
-                                </th>
36
-                                <th>市
37
-                                </th>
38
-                                <th>县
34
+                                <th>联系电话
39 35
                                 </th>
40 36
                                 <th>地址
41 37
                                 </th>
@@ -46,7 +42,7 @@
46 42
                             </tr>
47 43
                         </thead>
48 44
                         <tbody>
49
-                            <asp:Repeater ID="RpList" runat="server">
45
+                            <asp:Repeater ID="RpList" runat="server" OnItemCommand="RpList_ItemCommand">
50 46
                                 <ItemTemplate>
51 47
                                     <tr>
52 48
                                         <td>
@@ -56,15 +52,12 @@
56 52
                                             <%#Eval("Receiver") %>
57 53
                                         </td>
58 54
                                         <td>
59
-                                            <%#Eval("Province") %>
55
+                                            <%#Eval("Telephone") %>
60 56
                                         </td>
61 57
                                         <td>
58
+                                            <%#Eval("Province") %>
62 59
                                             <%#Eval("City") %>
63
-                                        </td>
64
-                                        <td>
65 60
                                             <%#Eval("County") %>
66
-                                        </td>
67
-                                        <td>
68 61
                                             <%#Eval("Address") %>
69 62
                                         </td>
70 63
                                         <td>
@@ -72,8 +65,11 @@
72 65
                                         </td>
73 66
                                         <td>
74 67
                                             <a href='OrderTickets.aspx?ID=<%#Eval("OrderID") %>'>
75
-                                                   <%#Eval("State").ToString()=="1"?"发货":"" %>
68
+                                                   <%#(Eval("State").ToString()=="1" &&Eval("OrderID").ToString().Substring(0,1)=="S") ?"发货":"" %>
76 69
                                             </a>
70
+                                            <asp:LinkButton ID="lbnotice" CommandName="notice" CommandArgument='<%#Eval("OrderID") %>' OnClientClick="return confirm('确定要通知吗?')" runat="server" >
71
+                                                <%#(Eval("State").ToString()=="1" &&Eval("OrderID").ToString().Substring(0,1)=="B") ?"通知":"" %>
72
+                                            </asp:LinkButton>
77 73
                                             <%--<asp:Button ID="btn" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#myModal" runat="server" Text="发货"  OnClick="btn_Click"/>--%>
78 74
                                             <%--<button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#myModal">发货</button>--%>
79 75
                                         </td>
@@ -103,37 +99,7 @@
103 99
         </div>
104 100
         <!-- /.row -->
105 101
     </div>
106
-    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
107
-        <div class="modal-dialog">
108
-            <div class="modal-content">
109
-                <div class="modal-header">
110
-                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
111
-                    <h4 class="modal-title text-primary">已支付订单</h4>
112
-                </div>
113
-                <div class="modal-body">
114
-                    <%--<p>One fine body…</p>--%>
115
-                    <table>
116
-                        <tr>
117
-                            <td style="width: 10%">快递名称:</td>
118
-                            <td style="width: 60%">
119
-                                <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox></td>
120
-                        </tr>
121
-                        <tr>
122
-                            <td>快递单号:</td>
123
-                            <td>
124
-                                <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>
125
-                        </tr>
126
-                    </table>
127
-                </div>
128
-                <div class="modal-footer">
129
-                    <asp:Button ID="Button1" class="btn btn-default" data-dismiss="modal" runat="server" Text="关闭" />
130
-                    <asp:Button ID="Button2" class="btn btn-primary" runat="server" Text="保存" />
131
-                </div>
132
-            </div>
133
-            <!-- /.modal-content -->
134
-        </div>
135
-        <!-- /.modal-dialog -->
136
-    </div>
102
+
137 103
 </asp:Content>
138 104
 <asp:Content ID="Content3" ContentPlaceHolderID="otherjquery" runat="server">
139 105
 </asp:Content>

+ 29 - 44
ShopMobile/Admin/OrderList.aspx.cs

@@ -1,6 +1,7 @@
1 1
 using Newtonsoft.Json;
2 2
 using Newtonsoft.Json.Linq;
3 3
 using ShopMobile.Admin.common;
4
+using ShopMobile.apiclass;
4 5
 using ShopMobile.Common;
5 6
 using System;
6 7
 using System.Collections.Generic;
@@ -17,8 +18,10 @@ namespace ShopMobile.Admin
17 18
         public string paging;
18 19
         protected void Page_Load(object sender, EventArgs e)
19 20
         {
20
-
21
-            bind();
21
+            if (!IsPostBack)
22
+            {
23
+                bind();
24
+            }
22 25
         }
23 26
         protected void bind()
24 27
         {
@@ -34,12 +37,9 @@ namespace ShopMobile.Admin
34 37
                 {
35 38
                     strwhere = strwhere + "Receiver like @Receiver";
36 39
                     txtname.Text = Request.QueryString["zh"];
37
-                    paras.Add("Receiver", "%" + Request.QueryString["zh"] + "%");
38
-                }
39
-                else
40
-                {
41
-                    paras.Add("Receiver", "%" + strwhere + "%");
40
+                    paras.Add("OrderID", "%" + Request.QueryString["zh"] + "%");
42 41
                 }
42
+
43 43
                 RecordCount = new Bll.PT_Order_Header().GetRecordCount(strwhere, paras);
44 44
                 int PageSize = 10;
45 45
                 PageCount = int.Parse(Math.Ceiling(Convert.ToDecimal(RecordCount) / Convert.ToDecimal(PageSize)).ToString());
@@ -91,54 +91,39 @@ namespace ShopMobile.Admin
91 91
         protected void btnsearch_Click(object sender, EventArgs e)
92 92
         {
93 93
             string strzh = txtname.Text.Trim();
94
+
94 95
             string _url = HttpContext.Current.Request.Url.AbsoluteUri;
95 96
             if (_url.IndexOf('?') != -1)
96 97
             {
97
-                if (_url.Contains("&Page="))
98
-                {
99
-                    _url = _url.Remove(_url.LastIndexOf("&"));
100
-                    _url = _url + "&";
101
-                }
102
-                else if (_url.Contains("?Page="))
103
-                {
104
-                    _url = _url.Remove(_url.LastIndexOf("?"));
105
-                    _url = _url + "?";
106
-                }
107
-                if (_url.Contains("&zh="))
108
-                {
109
-                    _url = _url.Remove(_url.LastIndexOf("&zh="));
110
-                    _url = _url + "&";
111
-                }
112
-                else if (_url.Contains("?zh="))
113
-                {
114
-                    _url = _url.Remove(_url.LastIndexOf("?"));
115
-                    _url = _url + "?";
116
-                }
117
-                else
118
-                {
119
-                    _url = _url + "&";
120
-                }
121
-            }
122
-            else
123
-            {
124
-                _url = _url + "?";
98
+                _url = _url.Remove(_url.LastIndexOf("?"));
125 99
             }
100
+            _url = _url + "?";
101
+
126 102
             _url = _url + "zh=" + strzh;
127 103
             Response.Redirect(_url);
128 104
 
129 105
         }
130 106
 
131
-        protected void btn_Click(object sender, EventArgs e)
107
+        protected void RpList_ItemCommand(object source, RepeaterCommandEventArgs e)
132 108
         {
133
-           
134
-            try
135
-            {
136
-              
137
-               
138
-            }
139
-            catch (Exception ex)
109
+            if (e.CommandName == "notice")
140 110
             {
141
-
111
+                string oid = e.CommandArgument.ToString();
112
+                var od = new Bll.PT_Order_Header().GetModel(oid);
113
+                if (od.OrderID.Substring(0, 1) == "B" && od.State==1)
114
+                {
115
+                    order or = new order();
116
+                    result msg = new result();
117
+                    or.addordertopt(od.OrderID, ref msg);
118
+                    if (msg.result1.ToString() == "")
119
+                    {
120
+                        Common.MessageBox.Show(this, "通知失败");
121
+                    }
122
+                    else
123
+                    {
124
+                        Common.MessageBox.Show(this, "通知成功");
125
+                    }
126
+                }
142 127
             }
143 128
         }
144 129
     }

+ 0 - 36
ShopMobile/Admin/OrderList.aspx.designer.cs

@@ -38,41 +38,5 @@ namespace ShopMobile.Admin {
38 38
         /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
39 39
         /// </remarks>
40 40
         protected global::System.Web.UI.WebControls.Repeater RpList;
41
-        
42
-        /// <summary>
43
-        /// TextBox3 控件。
44
-        /// </summary>
45
-        /// <remarks>
46
-        /// 自动生成的字段。
47
-        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
48
-        /// </remarks>
49
-        protected global::System.Web.UI.WebControls.TextBox TextBox3;
50
-        
51
-        /// <summary>
52
-        /// TextBox1 控件。
53
-        /// </summary>
54
-        /// <remarks>
55
-        /// 自动生成的字段。
56
-        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
57
-        /// </remarks>
58
-        protected global::System.Web.UI.WebControls.TextBox TextBox1;
59
-        
60
-        /// <summary>
61
-        /// Button1 控件。
62
-        /// </summary>
63
-        /// <remarks>
64
-        /// 自动生成的字段。
65
-        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
66
-        /// </remarks>
67
-        protected global::System.Web.UI.WebControls.Button Button1;
68
-        
69
-        /// <summary>
70
-        /// Button2 控件。
71
-        /// </summary>
72
-        /// <remarks>
73
-        /// 自动生成的字段。
74
-        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
75
-        /// </remarks>
76
-        protected global::System.Web.UI.WebControls.Button Button2;
77 41
     }
78 42
 }

+ 1 - 0
ShopMobile/Admin/PictureList.aspx.cs

@@ -46,6 +46,7 @@ namespace ShopMobile.Admin
46 46
             if (!string.IsNullOrEmpty(Request.QueryString["zh"]))
47 47
             {
48 48
                 _search = _search + " and PicSort = '" + Request.QueryString["zh"] + "'";
49
+                txtPicSort.Text = Request.QueryString["zh"];
49 50
             }
50 51
             RpList.DataSource = Paginator.MyExecutePage("*", "PT_Pic_ImgUrl", _search, "id", "id desc", PageIndex, PageSize, out RecordCount, out PageCount);
51 52
             paging = Paginator.Pagination(PageIndex, PageCount, RecordCount);

+ 1 - 1
ShopMobile/Admin/ProductListOther.aspx.cs

@@ -120,7 +120,7 @@ namespace ShopMobile.Admin
120 120
                         model.Title = obj["ProductName"].ToString();
121 121
                         model.SPPrice = decimal.Parse(obj["ProductPrice"].ToString());
122 122
                         model.ImgUrl1 = obj["AppActiveProductImg"].ToString();
123
-                        model.Category = Int32.Parse(obj["Product_C3SysNo"].ToString());
123
+                        //model.Category = Int32.Parse(obj["Product_C3SysNo"].ToString());
124 124
                         model.SpNo = Int32.Parse(obj["ProductSysNo"].ToString());
125 125
                         model.Status = Int32.Parse(obj["Status"].ToString());
126 126
                         model.Brand = obj["Brand_Name"].ToString();

+ 1 - 1
ShopMobile/Mobile/View/Order.html

@@ -80,7 +80,7 @@
80 80
         avalon.ready(function () {
81 81
             if (model.cart.length > 0) {
82 82
                 var date = common.getnowdate("yyyyMMddHHmmss");
83
-                var strdata = { action: "common_cartlist", "cart": JSON.stringify(model.cart.$model), timestamp: date };
83
+                var strdata = { action: "product_cartlist", "cart": JSON.stringify(model.cart.$model), timestamp: date };
84 84
                 var sign = common.getsign(JSON.stringify(strdata));
85 85
                 var data = JSON.parse(JSON.stringify(strdata));
86 86
                 data.sign = sign;

+ 3 - 0
ShopMobile/Mobile/View/OrderDatail.html

@@ -148,6 +148,9 @@
148 148
                     </div>
149 149
                 </li>
150 150
             </ul>
151
+            <div class="ui-form-item ui-form-item-order ui-border-b" ms-if="modelData.Express">
152
+                <a style="position:absolute;">快递信息</a><h4 class="ui-nowrap" style="padding-left:95px;">{{modelData.Express}}&nbsp;&nbsp;{{modelData.ExpressNo}}</h4>
153
+            </div>
151 154
             <div class="ui-form-item ui-form-item-order ui-border-b">
152 155
                 <a>商品明细</a>
153 156
             </div>

+ 52 - 26
ShopMobile/Mobile/View/Pay/WeChat/jsapih5.ashx.cs

@@ -4,6 +4,7 @@ using System.Linq;
4 4
 using System.Web;
5 5
 using LitJson;
6 6
 using WxPayAPI;
7
+using ShopMobile.Common;
7 8
 
8 9
 namespace ShopMobile.View.Pay.WeChat
9 10
 {
@@ -12,50 +13,75 @@ namespace ShopMobile.View.Pay.WeChat
12 13
     /// </summary>
13 14
     public class jsapih5 : IHttpHandler
14 15
     {
15
-
16 16
         public void ProcessRequest(HttpContext context)
17 17
         {
18 18
             string wxJsApiParam = "";
19
-            string code = context.Request.Params["code"];
20
-            string orderid = context.Request.Params["orderid"];
21
-
22
-            try
19
+            if (context.Request.UrlReferrer != null && context.Request.UrlReferrer.DnsSafeHost == context.Request.Url.DnsSafeHost)
23 20
             {
24
-                var ord = new ShopMobile.Bll.PT_Order_Header().GetModel(orderid);
25
-                if (ord != null)
21
+                string sign = context.Request.Params["sign"];
22
+                string orderid = context.Request.Params["orderid"];
23
+                if ( !string.IsNullOrEmpty(orderid) && !string.IsNullOrEmpty(sign) && check(context))
26 24
                 {
27
-                    var bt = new ShopMobile.Bll.PT_Base_Site().GetModel(1);
28
-                    if (bt != null)
25
+                    try
29 26
                     {
30
-                        WxPayConfig.APPID = bt.WX_AppID;
31
-                        WxPayConfig.MCHID = bt.WX_MCHID;
32
-                        WxPayConfig.KEY = bt.WX_KEY;
33
-                        WxPayConfig.APPSECRET = bt.WX_AppSecret;
27
+                        var ord = new ShopMobile.Bll.PT_Order_Header().GetModel(orderid);
28
+                        if (ord != null)
29
+                        {
30
+                            var bt = new ShopMobile.Bll.PT_Base_Site().GetModel(1);
31
+                            if (bt != null)
32
+                            {
33
+                                WxPayConfig.APPID = bt.WX_AppID;
34
+                                WxPayConfig.MCHID = bt.WX_MCHID;
35
+                                WxPayConfig.KEY = bt.WX_KEY;
36
+                                WxPayConfig.APPSECRET = bt.WX_AppSecret;
37
+
34 38
 
39
+                                Log.Debug("NOTIFY_URL", WxPayConfig.NOTIFY_URL);
35 40
 
36
-                        Log.Debug("NOTIFY_URL", WxPayConfig.NOTIFY_URL);
41
+                                JsApiPay2 jsApiPay = new JsApiPay2(context);
42
+                                jsApiPay.GetOpenidAndAccessToken();
37 43
 
38
-                        JsApiPay2 jsApiPay = new JsApiPay2(context);
39
-                        jsApiPay.GetOpenidAndAccessToken();
44
+                                jsApiPay.orderid = orderid;
45
+                                jsApiPay.name = "商城订单" + orderid;
46
+                                jsApiPay.total_fee = (int)(ord.PayPrice * 100);
40 47
 
41
-                        jsApiPay.orderid = orderid;
42
-                        jsApiPay.name = "商城订单" + orderid;
43
-                        jsApiPay.total_fee = (int)(ord.PayPrice * 100);
48
+                                //JSAPI支付预处理
49
+                                WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult();
50
+                                wxJsApiParam = jsApiPay.GetJsApiParameters();//获取H5调起JS API参数
51
+                            }
52
+                        }
44 53
 
45
-                        //JSAPI支付预处理
46
-                        WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult();
47
-                        wxJsApiParam = jsApiPay.GetJsApiParameters();//获取H5调起JS API参数
54
+                    }
55
+                    catch (Exception ex)
56
+                    {
48 57
                     }
49 58
                 }
50
-
51
-            }
52
-            catch(Exception ex) {
53 59
             }
54
-
55 60
             context.Response.ContentType = "text/plain";
56 61
             context.Response.Write(wxJsApiParam);
57 62
         }
58 63
 
64
+        public bool check(HttpContext context)
65
+        {
66
+            bool bl = false;
67
+
68
+            string sign = context.Request.Params["sign"] ?? "";
69
+
70
+            string paras = string.Empty;
71
+            foreach (var key in context.Request.Params.AllKeys)
72
+            {
73
+                if (key == "sign")
74
+                {
75
+                    break;
76
+                }
77
+                paras = paras + context.Request.Params[key];
78
+            }
79
+
80
+            bl = Utils.MD5(paras).ToUpper() == sign.ToUpper();
81
+
82
+            return bl;
83
+        }
84
+
59 85
         public bool IsReusable
60 86
         {
61 87
             get

+ 12 - 8
ShopMobile/Mobile/View/Pay/paywx.html

@@ -30,11 +30,11 @@
30 30
                     <li class="card-content card_border">
31 31
                         <div class="card-content-inner f28 flex_center">
32 32
                             <span class="black" style="width:100px;">订单编号</span>
33
-                            <span class="fx1">{{OrderID}}</span>
33
+                            <span class="fx1">{{DataModel.OrderID}}</span>
34 34
                         </div>
35 35
                         <div class="card-content-inner f28 flex_center">
36 36
                             <span class="black" style="width:100px;">应付款</span>
37
-                            <span class="fx1">¥{{DataModel.PayPrice?DataModel.PayPrice:DataModel.Total}}</span>
37
+                            <span class="fx1">¥{{DataModel.PayPrice}}</span>
38 38
                         </div>
39 39
                     </li>
40 40
                 </ul>
@@ -48,8 +48,8 @@
48 48
         var model = avalon.define({
49 49
             $id: "orderp",
50 50
             DataModel: {},
51
-            code: ComFunJS.getQueryString("code") ? ComFunJS.getQueryString("code") : "",
52
-            OrderID: ComFunJS.getQueryString("orderid") ? ComFunJS.getQueryString("orderid") : "",
51
+            code: common.getQueryString("code") ? common.getQueryString("code") : "",
52
+            OrderID: common.getQueryString("orderid") ? common.getQueryString("orderid") : "",
53 53
             jsapi: {},
54 54
             callpayto: function () {
55 55
                 callpay();
@@ -68,14 +68,18 @@
68 68
 
69 69
                     if (resultData.ErrorMsg == "") {
70 70
                         model.DataModel = resultData.result1;
71
-                        var pr = model.DataModel.PayPrice;
72
-                        if (!model.DataModel.PayPrice) { pr = model.DataModel.Total; }
73
-                        $.getJSON("/Mobile/View/Pay/WeChat/jsapih5.ashx", { "code": model.code, "orderid": model.OrderID, "orderpay": pr }, function (r) {
71
+                        
72
+                        var strdata1 = { "code": model.code, "orderid": model.modelData.OrderID, timestamp: date };
73
+                        var sign1 = common.getsign(JSON.stringify(strdata1));
74
+                        var data1 = JSON.parse(JSON.stringify(strdata1));
75
+                        data1.sign = sign1;
76
+
77
+                        $.getJSON("/Mobile/View/Pay/WeChat/jsapih5.ashx", data1, function (r) {
74 78
                             if (r) {
75 79
                                 model.jsapi = r;
76 80
 
77 81
                             } else {
78
-                                ComFunJS.winwarning("提交失败,请重新提交!");
82
+                                common.alert("提交失败,请重新提交!","warn");
79 83
                             }
80 84
                         })
81 85
                     }

+ 10 - 18
ShopMobile/Mobile/View/SCSY.html

@@ -43,19 +43,23 @@
43 43
         });
44 44
         avalon.ready(function () {
45 45
             var date = common.getnowdate("yyyyMMddHHmmss");
46
-            var strdata = { action: "product_productlist", PageCount: 4, PageIndex: 1, timestamp: date };
46
+            var strdata = { action: "product_indexlist", timestamp: date };
47 47
             var sign = common.getsign(JSON.stringify(strdata));
48 48
             var data = JSON.parse(JSON.stringify(strdata));
49 49
             data.sign = sign;
50 50
             $.getJSON("/api/api.ashx", data, function (resultData) {
51 51
                 if (resultData.msgcode == "") {
52
+                    model.tcData = resultData.result1;
53
+                    model.rmData = resultData.result2;
54
+                    model.tjData = resultData.result3;
55
+
52 56
                     var html = "";
53
-                    $(resultData.result1).each(function (i, n) {
54
-                        if (i < 4) {
55
-                            //html = html + '<li class="imgsp" ><span style="background-image: url(' + n.AppActiveProductImg + ')"></span></li>';
56
-                            html = html + '<li class="imgsp" ><span style="background-image: url(' + n.ImgUrl1 + ')"></span></li>';
57
-                        }
57
+                    $(resultData.result4).each(function (i, n) {
58
+                        html = html + '<li><span style="background-image: url(/Mobile/img/zwtp.jpg)"><span style="background-image: url(' + n.PicUrl + ')"></span></span></li>';
58 59
                     })
60
+                    if (!html) {
61
+                        html = html + '<li><span style="background-image: url(/Mobile/img/zwtp.jpg)"></span></li>';
62
+                    }
59 63
 
60 64
                     $(".ui-slider-content").append(html)
61 65
 
@@ -67,18 +71,6 @@
67 71
                     });
68 72
                 }
69 73
             })
70
-
71
-            var strdata = { action: "product_indexlist", timestamp: date };
72
-            var sign = common.getsign(JSON.stringify(strdata));
73
-            var data = JSON.parse(JSON.stringify(strdata));
74
-            data.sign = sign;
75
-            $.getJSON("/api/api.ashx", data, function (resultData) {
76
-                if (resultData.msgcode == "") {
77
-                    model.tcData = resultData.result1;
78
-                    model.rmData = resultData.result2;
79
-                    model.tjData = resultData.result3;
80
-                }
81
-            })
82 74
         })
83 75
     </script>
84 76
 </head>

+ 1 - 1
ShopMobile/Mobile/View/SPXQ.html

@@ -329,7 +329,7 @@
329 329
                             $(".ui-slider-content").empty();
330 330
                             var html = "";
331 331
                             $(model.DataModel.ImgUrl.split(',')).each(function (i, n) {
332
-                                html = html + '<li><span style="background-image: url(' + n + ')"></span></li>';
332
+                                html = html + '<li><span style="background-image: url(/Mobile/img/zwtp.jpg)"><span style="background-image: url(' + n + ')"></span></span></li>';
333 333
                             })
334 334
                             if (!html) {
335 335
                                 html = html + '<li><span style="background-image: url(/Mobile/img/zwtp.jpg)"></span></li>';

+ 1 - 1
ShopMobile/Mobile/View/ShopCart.html

@@ -85,7 +85,7 @@
85 85
         avalon.ready(function () {
86 86
             if (model.cart.length > 0) {
87 87
                 var date = common.getnowdate("yyyyMMddHHmmss");
88
-                var strdata = { action: "common_cartlist", "cart": JSON.stringify(model.cart.$model), timestamp: date };
88
+                var strdata = { action: "product_cartlist", "cart": JSON.stringify(model.cart.$model), timestamp: date };
89 89
                 var sign = common.getsign(JSON.stringify(strdata));
90 90
                 var data = JSON.parse(JSON.stringify(strdata));
91 91
                 data.sign = sign;

+ 0 - 142
ShopMobile/apiclass/common.cs

@@ -157,147 +157,5 @@ namespace ShopMobile.apiclass
157 157
         }
158 158
         #endregion
159 159
 
160
-        #region 获取购物车商品
161
-        public void cartlist(HttpContext context, ref result msg, Model.PT_User_Account user)
162
-        {
163
-            string url = CommFun.GetConfigString("shopurl").ToString();
164
-            string appkey = CommFun.GetConfigString("appkey").ToString();
165
-            string userkey = "&"+ CommFun.GetConfigString("userkey").ToString();
166
-
167
-            List<orderitems> list = new List<orderitems>();
168
-            string carts = Common.Utils.HtmlDecode(Common.CommFun.QueryString("cart"));
169
-            List<cartitem> objs = JsonConvert.DeserializeObject<List<cartitem>>(carts) ;
170
-            foreach (cartitem obj in objs)
171
-            {
172
-                Model.PT_Pro_Product pt = new Bll.PT_Pro_Product().GetModel(obj.id);
173
-                if (pt != null)
174
-                {
175
-                    if (pt.Type == 0)
176
-                    {
177
-                        orderitem oim = new orderitem();
178
-                        oim.pid = obj.id;
179
-                        oim.spno = obj.spno;
180
-                        oim.qty = obj.num;
181
-                        oim.isxz = obj.isxz;
182
-                        oim.title = pt.Title;
183
-                        oim.sumprice = pt.SPPrice.Value;
184
-                        oim.payprice = (pt.Price == null || pt.Price.Value == 0) ? pt.SPPrice.Value / 2 : pt.Price.Value;
185
-                        oim.point = (pt.Points == null || pt.Points.Value == 0) ? pt.SPPrice.Value / 2 : pt.Points.Value;
186
-                        oim.imgurl = pt.ImgUrl1;
187
-                        oim.kcqty = pt.Qty.Value;
188
-
189
-                        var os = list.Where(p => p.type == 0).FirstOrDefault();
190
-
191
-                        if (os == null)
192
-                        {
193
-                            os = new orderitems();
194
-                            os.type = 0;
195
-                            os.items = new List<orderitem>();
196
-                            os.items.Add(oim);
197
-                            list.Add(os);
198
-                        }
199
-                        else
200
-                        {
201
-                            os.items.Add(oim);
202
-                        }
203
-                    }
204
-                    if (pt.Type == 1)
205
-                    {
206
-                        try
207
-                        {
208
-                            var strdate = DateTime.Now.ToString("yyyyMMddHHmmss");
209
-                            string strdata = "app_key=" + appkey + "&format=json&product_SysNo=" + obj.spno + "&sign_method=md5&timestamp=" + strdate
210
-                                + "&sign=" + Utils.MD5(appkey + "json" + obj.spno + "md5" + strdate + userkey).ToLower();
211
-                            string result = CommFun.Get(url + "/v2/By/ProductsDetail", strdata);
212
-                            JObject res = JsonConvert.DeserializeObject(result) as JObject;
213
-                            JObject ret = JsonConvert.DeserializeObject(res["Result"].ToString()) as JObject;
214
-                            JObject spxq = JsonConvert.DeserializeObject(res["Content"].ToString()) as JObject;
215
-                            if (ret["code"].ToString() == "1001" && spxq["AvailableQty"].ToString() != "0")
216
-                            {
217
-                                var pe = decimal.Parse(spxq["Product_Price"].ToString());
218
-                                orderitem oim = new orderitem();
219
-                                oim.pid = obj.id;
220
-                                oim.spno = obj.spno;
221
-                                oim.qty = obj.num;
222
-                                oim.isxz = obj.isxz;
223
-                                oim.title = spxq["Product_Name"].ToString();
224
-                                oim.sumprice = pe;
225
-                                oim.payprice = (pt.Price == null || pt.Price.Value == 0) ? pe / 2 : pt.Price.Value;
226
-                                oim.point = (pt.Points == null || pt.Points.Value == 0) ? pe / 2 : pt.Points.Value;
227
-                                oim.kcqty = Int32.Parse(spxq["AvailableQty"].ToString());
228
-                                oim.imgurl = new Uri("http://img.3721zh.com/UploadFiles/Product/" + obj.spno + "/AppPic/1.jpg").ToString();
229
-                                oim.group = new List<attritem>();
230
-                                var grouplist = JsonConvert.DeserializeObject<List<JObject>>(spxq["Product_Group"].ToString());
231
-                                foreach (var gp in grouplist)
232
-                                {
233
-                                    if (gp["ProductSysNo"].ToString() == obj.spno.ToString())
234
-                                    {
235
-                                        var gps = gp["Group_Name"].ToString().Split('|');
236
-                                        oim.group.Add(new attritem() { key = gps[0], value = gp["Value1"].ToString() });
237
-                                        if (gps.Length > 1)
238
-                                        {
239
-                                            oim.group.Add(new attritem() { key = gps[1], value = gp["Value2"].ToString() });
240
-                                        }
241
-                                        break;
242
-                                    }
243
-                                }
244
-
245
-                                var os = list.Where(p => p.type == 1).FirstOrDefault();
246
-                                if (os == null)
247
-                                {
248
-                                    os = new orderitems();
249
-                                    os.type = 1;
250
-                                    os.items = new List<orderitem>();
251
-                                    os.items.Add(oim);
252
-
253
-                                    list.Add(os);
254
-                                }
255
-                                else {
256
-                                    os.items.Add(oim);
257
-                                }
258
-                                
259
-                            }
260
-                        }
261
-                        catch (Exception ex)
262
-                        { }
263
-                    }
264
-                }
265
-            }
266
-            msg.result1 = list;
267
-        }
268
-        public class orderitems
269
-        {
270
-            public int type { get; set; }
271
-            public string name { get; set; }
272
-            public string remark { get; set; }
273
-            public List<orderitem> items { get; set; }
274
-        }
275
-        public class orderitem
276
-        {
277
-            public int pid { get; set; }
278
-            public int spno { get; set; }
279
-            public string title { get; set; }
280
-            public string imgurl { get; set; }
281
-            public decimal sumprice { get; set; }
282
-            public decimal payprice { get; set; }
283
-            public decimal point { get; set; }
284
-            public int kcqty { get; set; }
285
-            public int qty { get; set; }
286
-            public int isxz { get; set; }
287
-            public List<attritem> group { get; set; }
288
-        }
289
-        public class cartitem
290
-        {
291
-            public int id { get; set; }
292
-            public int spno { get; set; }
293
-            public int num { get; set; }
294
-            public int isxz { get; set; }
295
-        }
296
-        public class attritem
297
-        {
298
-            public string key { get; set; }
299
-            public string value { get; set; }
300
-        }
301
-        #endregion
302 160
     }
303 161
 }

+ 146 - 1
ShopMobile/apiclass/product.cs

@@ -14,13 +14,14 @@ namespace ShopMobile.apiclass
14 14
     {
15 15
         public product() { }
16 16
 
17
-        #region 获取商品列表
17
+        #region 获取首页列表
18 18
 
19 19
         public void indexlist(HttpContext context, ref result msg, Model.PT_User_Account user)
20 20
         {
21 21
             msg.result1 = new Bll.PT_Pro_Product().GetList(4, " ','+SpBQ+',' like '%,推荐,%' and Deleted='0' and IsSelf='1'", " ID desc").Tables[0];
22 22
             msg.result2 = new Bll.PT_Pro_Product().GetList(4, " ','+SpBQ+',' like '%,热卖,%' and Deleted='0' and IsSelf='1'", " ID desc").Tables[0];
23 23
             msg.result3 = new Bll.PT_Pro_Product().GetList(4, " ','+SpBQ+',' like '%,特价,%' and Deleted='0' and IsSelf='1'", " ID desc").Tables[0];
24
+            msg.result4 = new Bll.PT_Pic_ImgUrl().GetList(4, " 1=1 ", " PicSort asc ").Tables[0];
24 25
         }
25 26
         #endregion
26 27
 
@@ -222,5 +223,149 @@ namespace ShopMobile.apiclass
222 223
             msg.result1 = dt;
223 224
         }
224 225
         #endregion
226
+
227
+        #region 获取购物车商品
228
+        public void cartlist(HttpContext context, ref result msg, Model.PT_User_Account user)
229
+        {
230
+            string url = CommFun.GetConfigString("shopurl").ToString();
231
+            string appkey = CommFun.GetConfigString("appkey").ToString();
232
+            string userkey = "&" + CommFun.GetConfigString("userkey").ToString();
233
+
234
+            List<orderitems> list = new List<orderitems>();
235
+            string carts = Common.Utils.HtmlDecode(Common.CommFun.QueryString("cart"));
236
+            List<cartitem> objs = JsonConvert.DeserializeObject<List<cartitem>>(carts);
237
+            foreach (cartitem obj in objs)
238
+            {
239
+                Model.PT_Pro_Product pt = new Bll.PT_Pro_Product().GetModel(obj.id);
240
+                if (pt != null)
241
+                {
242
+                    if (pt.Type == 0)
243
+                    {
244
+                        orderitem oim = new orderitem();
245
+                        oim.pid = obj.id;
246
+                        oim.spno = obj.spno;
247
+                        oim.qty = obj.num;
248
+                        oim.isxz = obj.isxz;
249
+                        oim.title = pt.Title;
250
+                        oim.sumprice = pt.SPPrice.Value;
251
+                        oim.payprice = (pt.Price == null || pt.Price.Value == 0) ? pt.SPPrice.Value / 2 : pt.Price.Value;
252
+                        oim.point = (pt.Points == null || pt.Points.Value == 0) ? pt.SPPrice.Value / 2 : pt.Points.Value;
253
+                        oim.imgurl = pt.ImgUrl1;
254
+                        oim.kcqty = pt.Qty.Value;
255
+
256
+                        var os = list.Where(p => p.type == 0).FirstOrDefault();
257
+
258
+                        if (os == null)
259
+                        {
260
+                            os = new orderitems();
261
+                            os.type = 0;
262
+                            os.items = new List<orderitem>();
263
+                            os.items.Add(oim);
264
+                            list.Add(os);
265
+                        }
266
+                        else
267
+                        {
268
+                            os.items.Add(oim);
269
+                        }
270
+                    }
271
+                    if (pt.Type == 1)
272
+                    {
273
+                        try
274
+                        {
275
+                            var strdate = DateTime.Now.ToString("yyyyMMddHHmmss");
276
+                            string strdata = "app_key=" + appkey + "&format=json&product_SysNo=" + obj.spno + "&sign_method=md5&timestamp=" + strdate
277
+                                + "&sign=" + Utils.MD5(appkey + "json" + obj.spno + "md5" + strdate + userkey).ToLower();
278
+                            string result = CommFun.Get(url + "/v2/By/ProductsDetail", strdata);
279
+                            JObject res = JsonConvert.DeserializeObject(result) as JObject;
280
+                            JObject ret = JsonConvert.DeserializeObject(res["Result"].ToString()) as JObject;
281
+                            JObject spxq = JsonConvert.DeserializeObject(res["Content"].ToString()) as JObject;
282
+                            if (ret["code"].ToString() == "1001" && spxq["AvailableQty"].ToString() != "0")
283
+                            {
284
+                                var pe = decimal.Parse(spxq["Product_Price"].ToString());
285
+                                orderitem oim = new orderitem();
286
+                                oim.pid = obj.id;
287
+                                oim.spno = obj.spno;
288
+                                oim.qty = obj.num;
289
+                                oim.isxz = obj.isxz;
290
+                                oim.title = spxq["Product_Name"].ToString();
291
+                                oim.sumprice = pe;
292
+                                oim.payprice = (pt.Price == null || pt.Price.Value == 0) ? pe / 2 : pt.Price.Value;
293
+                                oim.point = (pt.Points == null || pt.Points.Value == 0) ? pe / 2 : pt.Points.Value;
294
+                                oim.kcqty = Int32.Parse(spxq["AvailableQty"].ToString());
295
+                                oim.imgurl = new Uri("http://img.3721zh.com/UploadFiles/Product/" + obj.spno + "/AppPic/1.jpg").ToString();
296
+                                oim.group = new List<attritem>();
297
+                                var grouplist = JsonConvert.DeserializeObject<List<JObject>>(spxq["Product_Group"].ToString());
298
+                                foreach (var gp in grouplist)
299
+                                {
300
+                                    if (gp["ProductSysNo"].ToString() == obj.spno.ToString())
301
+                                    {
302
+                                        var gps = gp["Group_Name"].ToString().Split('|');
303
+                                        oim.group.Add(new attritem() { key = gps[0], value = gp["Value1"].ToString() });
304
+                                        if (gps.Length > 1)
305
+                                        {
306
+                                            oim.group.Add(new attritem() { key = gps[1], value = gp["Value2"].ToString() });
307
+                                        }
308
+                                        break;
309
+                                    }
310
+                                }
311
+
312
+                                var os = list.Where(p => p.type == 1).FirstOrDefault();
313
+                                if (os == null)
314
+                                {
315
+                                    os = new orderitems();
316
+                                    os.type = 1;
317
+                                    os.items = new List<orderitem>();
318
+                                    os.items.Add(oim);
319
+
320
+                                    list.Add(os);
321
+                                }
322
+                                else
323
+                                {
324
+                                    os.items.Add(oim);
325
+                                }
326
+
327
+                            }
328
+                        }
329
+                        catch (Exception ex)
330
+                        { }
331
+                    }
332
+                }
333
+            }
334
+            msg.result1 = list;
335
+        }
336
+        public class orderitems
337
+        {
338
+            public int type { get; set; }
339
+            public string name { get; set; }
340
+            public string remark { get; set; }
341
+            public List<orderitem> items { get; set; }
342
+        }
343
+        public class orderitem
344
+        {
345
+            public int pid { get; set; }
346
+            public int spno { get; set; }
347
+            public string title { get; set; }
348
+            public string imgurl { get; set; }
349
+            public decimal sumprice { get; set; }
350
+            public decimal payprice { get; set; }
351
+            public decimal point { get; set; }
352
+            public int kcqty { get; set; }
353
+            public int qty { get; set; }
354
+            public int isxz { get; set; }
355
+            public List<attritem> group { get; set; }
356
+        }
357
+        public class cartitem
358
+        {
359
+            public int id { get; set; }
360
+            public int spno { get; set; }
361
+            public int num { get; set; }
362
+            public int isxz { get; set; }
363
+        }
364
+        public class attritem
365
+        {
366
+            public string key { get; set; }
367
+            public string value { get; set; }
368
+        }
369
+        #endregion
225 370
     }
226 371
 }