Beispiel #1
0
 protected void Pro_RPT_ItemDataBound(object sender, RepeaterItemEventArgs e)
 {
     if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
     {
         //如果变复杂,将其分离为局部页
         if (e.Item.ItemIndex == 0)//首行判断
         {
             DataRowView dr = e.Item.DataItem as DataRowView;
             M_Payment payMod = OrderHelper.GetPaymentByOrderNo(dr.Row);
             int count = OrderDT.Select("id=" + dr["ID"]).Length;
             string html = "";
             //收货人
             html += "<td class='td_l rowtd' rowspan='" + count + "'>";
             html += "<i class='fa fa-user'></i> <a href='OrderList.aspx?UserID=" + dr["UserID"] + "' title='按用户筛选'>" + B_User.GetUserName(dr["HoneyName"], dr["AddUser"]) + "</a>";
             html += "(<a href='javascript:;' onclick='user.showuinfo(" + dr["UserID"] + ");' title='查看用户信息'><span style='color:green;'>" + dr["UserID"] + "</span></a>)";
             html += "</td>";
             //金额栏
             html += "<td class='td_l rowtd' rowspan='" + count + "' style='font-size:12px;'>总计:<i class='fa fa-rmb'></i> " + Convert.ToDouble(dr["OrdersAmount"]).ToString("f2") + "<br />";
             string _paytypeHtml = OrderHelper.GetStatus(dr.Row, OrderHelper.TypeEnum.PayType);
             if (!string.IsNullOrEmpty(_paytypeHtml)) { _paytypeHtml = _paytypeHtml + "<br />"; }
             html += _paytypeHtml;
             html += "<div>商品:" + (DataConvert.CDouble(dr["OrdersAmount"]) - DataConvert.CDouble(dr["Freight"])).ToString("F2") + "</div>";
             html += "<div>运费:" + DataConvert.CDouble(dr["Freight"]).ToString("F2") + "</div>";
             html += "<div title='优惠券'>优惠:" + payMod.ArriveMoney.ToString("F2") + "</div>";
             html += "<div>积分:" + payMod.UsePointArrive.ToString("f2") + "(" + payMod.UsePoint.ToString("F0") + ")</div>";
             switch (payMod.PayType)
             {
                 case (int)M_OrderList.PayTypeEnum.PrePay:
                     try
                     {
                         M_PrePayinfo preInfo = new M_PrePayinfo(payMod.PrePayInfo);
                         string payedTlp = "<div>(<span style='color:green;'>已付款</span>:{0},{1})</div>";
                         string nopayTlp = "<div>(<span style='color:red;'>未付款</span>)</div>";
                         html += "<div style='color:#d9534f;'>定金:" + preInfo.money_pre.ToString("F2") + "</div>";
                         html += preInfo.money_pre_payed > 0 ? string.Format(payedTlp, preInfo.money_pre_payed.ToString("F2"), preInfo.pre_payMethod) : nopayTlp;
                         html += "<div style='color:#d9534f'>尾款:" + preInfo.money_after.ToString("F2") + "</div>";
                         html += preInfo.money_after_payed > 0 ? string.Format(payedTlp, preInfo.money_after_payed.ToString("F2"), preInfo.after_payMethod) : nopayTlp;
                         html += "<div style='color:#d9534f'>总计:" + preInfo.money_total.ToString("F2") + "</div>";
                     }
                     catch
                     {
                         html += "预付信息错误";
                     }
                     break;
                 default:
                     html += "<div style='color:#d9534f;'>需付:" + payMod.MoneyReal.ToString("F2") + "</div>";
                     break;
             }
             if (!string.IsNullOrEmpty(DataConvert.CStr(dr["PaymentNo"])))
             {
                 string plat = platBll.GetPayPlatName(DataConvert.CStr(dr["PaymentNo"]));
                 html += "<a href='" + StrHelper.Url_AddParam(Request.RawUrl, "filter=paid") + "' title='筛选已付款订单'>" + "<span style='color:#337ab7;'>" + plat + "</span>"
                     + "(" + OrderHelper.GetStatus(dr.Row, OrderHelper.TypeEnum.Pay) + ")</a>";
             }
             else
             {
                 html += "(" + OrderHelper.GetStatus(dr.Row, OrderHelper.TypeEnum.Pay) + ")";
             }
             html += "</td>";
             //订单状态
             html += "<td class='td_md rowtd' rowspan='" + count + "'>";
             html += "<span class='gray9'>" + (DataConvert.CLng(dr["IsSure"]) == 1 ? "已确认" : "未确认") + "</span><br />";
             html += "<span class='gray9'>" + OrderHelper.GetStatus(dr.Row, OrderHelper.TypeEnum.Order) + "</span> <br />";
             int ordertype = DataConvert.CLng(dr["OrderType"]);
             //非旅游与酒店订单,则显示快递信息
             int expid = DataConvert.CLng(dr["ExpressNum"]);
             if (ordertype != 7 && ordertype != 9)
             {
                 html += "<a href='javascript:;' class='expview_a' data-expid='" + expid + "' id='expview_" + dr["ID"] + "_a' onclick=\"exp.apilink(this,'" + expid + "');\">" + OrderHelper.GetExpStatus(Convert.ToInt32(dr["StateLogistics"])) + "</span> <br/>";
             }
             html += "</td>";
             //操作栏
             html += "<td class='td_md rowtd' rowspan='" + count + "'><a href='OrderListInfo.aspx?ID=" + dr["ID"] + "' class='order_bspan'>订单详情</a><br/>" + Getoperator(dr) + "</td>";
             (e.Item.FindControl("Order_Lit") as Literal).Text = html;
         }
     }
 }
Beispiel #2
0
        //绑定订单操作列
        public MvcHtmlString BindOrderOP(DataRow dr)
        {
            M_Payment payMod = GetPaymentByOrderNo(DataConvert.CStr(dr["OrderNo"]));

            if (payMod == null)
            {
                payMod           = new M_Payment();
                payMod.MoneyReal = Convert.ToDouble(dr["OrdersAmount"]);
            }
            int count = GetProByOrder(DataConvert.CStr(dr["OrderNo"])).Rows.Count;
            //收货人 <td class='td_md gray9' rowspan='" + count + "'><i class='zi zi_user'> " + dr["AddUser"] + "</i></td>
            string html = "";

            //金额栏
            html += "<td class='rowtd' rowspan='" + count + "' style='font-size:12px;width:150px;'>";
            html += "<div>总计:" + Convert.ToDouble(dr["OrdersAmount"]).ToString("f2") + "</div>";

            html += "<div>商品:" + (DataConvert.CDouble(dr["OrdersAmount"]) - DataConvert.CDouble(dr["Freight"])).ToString("F2") + "</div>";
            html += "<div>运费:" + DataConvert.CDouble(dr["Freight"]).ToString("F2") + "</div>";
            html += "<div title='优惠券'>优惠:" + payMod.ArriveMoney.ToString("F2") + "</div>";
            html += "<div>积分:" + payMod.UsePointArrive.ToString("f2") + "(" + payMod.UsePoint.ToString("F0") + ")</div>";
            switch (payMod.PayType)
            {
            case (int)M_OrderList.PayTypeEnum.PrePay:
                try
                {
                    M_PrePayinfo preInfo  = new M_PrePayinfo(payMod.PrePayInfo);
                    string       payedTlp = "<div>(<span style='color:green;'>已付款</span>:{0},{1})</div>";
                    string       nopayTlp = "<div>(<span style='color:red;'>未付款</span>)</div>";
                    html += "<div style='color:#d9534f;'>定金:" + preInfo.money_pre.ToString("F2") + "</div>";
                    html += preInfo.money_pre_payed > 0 ? string.Format(payedTlp, preInfo.money_pre_payed.ToString("F2"), preInfo.pre_payMethod) : nopayTlp;
                    html += "<div style='color:#d9534f'>尾款:" + preInfo.money_after.ToString("F2") + "</div>";
                    html += preInfo.money_after_payed > 0 ? string.Format(payedTlp, preInfo.money_after_payed.ToString("F2"), preInfo.after_payMethod) : nopayTlp;
                    html += "<div style='color:#d9534f'>总计:" + preInfo.money_total.ToString("F2") + "</div>";
                }
                catch {
                    html += "预付信息错误";
                }
                break;

            default:
                html += "<div style='color:#d9534f;'>需付:" + payMod.MoneyReal.ToString("F2") + "</div>";
                break;
            }
            if (!string.IsNullOrEmpty(DataConvert.CStr(dr["PaymentNo"])))
            {
                string plat = platBll.GetPayPlatName(DataConvert.CStr(dr["PaymentNo"]));
                html += "<div><span style='color:#337ab7;'>" + plat + "</span>"
                        + "(" + OrderHelper.GetStatus(dr, OrderHelper.TypeEnum.Pay) + ")</div>";
            }
            else
            {
                html += "<div>(" + OrderHelper.GetStatus(dr, OrderHelper.TypeEnum.Pay) + ")</div>";
            }
            html += "</td>";

            //string _paytypeHtml = OrderHelper.GetStatus(dr, OrderHelper.TypeEnum.PayType);
            //if (!string.IsNullOrEmpty(_paytypeHtml)) { _paytypeHtml = _paytypeHtml + "<br />"; }
            //html += _paytypeHtml;
            //html += "<div>(" + OrderHelper.GetStatus(dr, OrderHelper.TypeEnum.Pay) + ")</div></td>";
            //订单状态
            html += "<td class='td_md rowtd' rowspan='" + count + "'><span class='gray9'>" + OrderHelper.GetStatus(dr, OrderHelper.TypeEnum.Order) + "</span> <br />";
            int ordertype = DataConvert.CLng(dr["OrderType"]);

            if (ordertype != 7 && ordertype != 9)
            {
                html += OrderHelper.GetExpStatus(Convert.ToInt32(dr["StateLogistics"])) + " <br/>";
            }
            html += "</td>";
            //操作栏
            string orderInfoUrl = (usefor.Equals("store") ? "/BU/Order/OrderListInfo.aspx?ID=" + dr["ID"]: "OrderProList?OrderNo=" + dr["OrderNo"]);

            html += "<td class='td_md rowtd' rowspan='" + count + "'><a href='" + orderInfoUrl + "' class='order_bspan'>订单详情</a><br/>" + Getoperator(dr) + "</td>";
            return(MvcHtmlString.Create(html));
        }
Beispiel #3
0
 /// <summary>
 /// 异步回调后-->验证支付单状态-->如果正常,更新订单状态
 /// 多张订单在外层循环,这里只处理单订单
 /// </summary>
 /// <param name="mod">订单模型</param>
 /// <param name="paylogMod">订单支付日志模型</param>
 public static void FinalStep(M_Payment pinfo, M_OrderList mod, M_Order_PayLog paylogMod)
 {
     //B_Order_PayLog paylogBll = new B_Order_PayLog();
     B_PayPlat platBll = new B_PayPlat();
     B_Payment payBll  = new B_Payment();
     B_User    buser   = new B_User();
     //[*]特殊处理,预付与尾款逻辑
     {
         #region
         if (pinfo.PayType == (int)M_OrderList.PayTypeEnum.PrePay)
         {
             M_PrePayinfo preInfo = new M_PrePayinfo(pinfo.PrePayInfo);
             preInfo.money_pre_payed = pinfo.MoneyTrue;
             preInfo.pre_payno       = pinfo.PayNo;
             preInfo.pre_payMethod   = platBll.GetPayPlatName(pinfo);
             pinfo.PrePayInfo        = JsonConvert.SerializeObject(preInfo);
             DBCenter.UpdateSQL(pinfo.TbName, "PrePayInfo=@preInfo", "PayMentID=" + pinfo.PaymentID,
                                new List <SqlParameter>()
             {
                 new SqlParameter("preInfo", pinfo.PrePayInfo)
             });
         }
         else if (pinfo.PayType == (int)M_OrderList.PayTypeEnum.AfterPay)
         {
             try
             {
                 M_OrderList realOrder = orderBll.SelModelByOrderNo(mod.Ordermessage);
                 M_Payment   preMod    = payBll.SelModelByPayNo(realOrder.PaymentNo);
                 //修改订单与支付单信息
                 M_PrePayinfo preInfo = new M_PrePayinfo(preMod.PrePayInfo);
                 preInfo.money_after_payed = pinfo.MoneyTrue;
                 preInfo.status            = (int)ZLEnum.ConStatus.Audited;
                 preInfo.after_payno       = pinfo.PayNo;
                 preInfo.after_payMethod   = platBll.GetPayPlatName(pinfo);
                 //修改二张订单与二张支付单的状态
                 realOrder.IsCount            = true;
                 realOrder.Ordersamount      += pinfo.MoneyTrue;
                 realOrder.Receivablesamount += pinfo.MoneyTrue;
                 orderBll.UpdateByID(realOrder);
                 mod.OrderStatus   = 99;
                 mod.Paymentstatus = 1;
                 mod.PaymentNo     = pinfo.PayNo;
                 orderBll.UpdateByID(mod);
                 DBCenter.UpdateSQL(preMod.TbName, "PrePayInfo=@preInfo", "PayMentID=" + preMod.PaymentID,
                                    new List <SqlParameter>()
                 {
                     new SqlParameter("preInfo", JsonConvert.SerializeObject(preInfo))
                 });
                 return;
             }
             catch (Exception ex)
             {
                 ZLLog.L(Model.ZLEnum.Log.pay, new M_Log()
                 {
                     Action  = "支付尾款异常",
                     Message = "订单号:" + mod.OrderNo + ",支付单:" + pinfo.PayNo + ",原因:" + ex.Message
                 });
                 return;
             }
         }
         #endregion
     }
     //订单已处理,避免重复(如已处理过,则继续处理下一张订单)
     if (mod.OrderStatus >= 99)
     {
         ZLLog.L(Model.ZLEnum.Log.pay, new M_Log()
         {
             Action  = "支付回调异常,订单状态已为99",
             Message = "订单号:" + mod.OrderNo + ",支付单:" + pinfo.PayNo
         });
         return;
     }
     //已经收到钱了,所以先执行(如多订单,则为订单金额)
     if (mod.Receivablesamount <= 0)
     {
         //DD201701112113293112618,DD201701112113293754790
         int orderNum = pinfo.PaymentNum.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Length;
         if (orderNum == 1)
         {
             mod.Receivablesamount = pinfo.MoneyTrue;
         }
         else
         {
             //订单需要改进,支持优惠后的金额等,不能只以支付单中的为准,每张订单需要计算出自己的优惠额与积分支付额
             mod.Receivablesamount = mod.Ordersamount;
         }
     }
     orderBll.UpOrderinfo("Paymentstatus=1,Receivablesamount=" + mod.Receivablesamount, mod.id);
     //if (mod.Ordertype == (int)M_OrderList.OrderEnum.Domain)//域名订单
     //{
     //    orderBll.UpOrderinfo("OrderStatus=1,PaymentNo='" + pinfo.PayNo + "'", mod.id);
     //    //Response.Redirect("~/Plugins/Domain/DomReg2?OrderNo=" + mod.OrderNo);
     //}
     //else if (mod.Ordertype == (int)M_OrderList.OrderEnum.IDC)//IDC服务
     //{
     //    B_Order_IDC idcBll = new B_Order_IDC();
     //    orderBll.FinishOrder(mod.id, pinfo);
     //    idcBll.UpdateEndTimeByNo(mod.OrderNo);
     //}
     //else if ((mod.Ordertype == (int)M_OrderList.OrderEnum.IDCRen))//IDC服务续费
     //{
     //    B_Order_IDC idcBll = new B_Order_IDC();
     //    orderBll.FinishOrder(mod.id, pinfo);
     //    idcBll.RennewTime(mod);
     //}
     if (mod.Ordertype == (int)M_OrderList.OrderEnum.Purse)//余额充值,不支持银币
     {
         buser.AddMoney(mod.Userid, mod.Ordersamount,
                        M_UserExpHis.SType.Purse, "余额充值,订单号:" + mod.OrderNo);
         //检测是否采用了充值赠送规则
         if (DataConvert.CLng(mod.Money_code) > 0)
         {
             B_Shop_MoneyRegular regBll = new B_Shop_MoneyRegular();
             M_Shop_MoneyRegular regMod = regBll.SelReturnModel(DataConvert.CLng(mod.Money_code));
             if (regMod.Purse > 0)
             {
                 buser.AddMoney(mod.Userid, regMod.Purse,
                                M_UserExpHis.SType.Purse, "余额充值--余额赠送,订单号:" + mod.OrderNo);
             }
             if (regMod.Sicon > 0)
             {
                 buser.AddMoney(mod.Userid, regMod.Sicon,
                                M_UserExpHis.SType.SIcon, "余额充值--银币赠送,订单号:" + mod.OrderNo);
             }
             if (regMod.Point > 0)
             {
                 buser.AddMoney(mod.Userid, regMod.Point,
                                M_UserExpHis.SType.Point, "余额充值--积分赠送,订单号:" + mod.OrderNo);
             }
         }
         orderBll.FinishOrder(mod.id, pinfo);                    //成功的订单
     }
     else if (mod.Ordertype == (int)M_OrderList.OrderEnum.Cloud) //虚拟商品订单
     {
         orderBll.FinishOrder(mod.id, pinfo);
     }
     else//其他旅游订单等,只更新状态
     {
         orderBll.FinishOrder(mod.id, pinfo);//成功的订单
     }
     //-------支付成功处理,快照并写入日志
     SaveSnapShot(mod);
     //paylogMod.Remind += "订单" + mod.OrderNo + "购买生效";
     //paylogMod.UserID = mod.Userid;
     //paylogMod.OrderID = mod.id;
     //paylogMod.PayMoney = mod.Ordersamount;
     //paylogMod.PayMethod = (int)M_Order_PayLog.PayMethodEnum.Other;//外部指定
     //paylogMod.PayPlatID = pinfo.PayPlatID;
     //paylogBll.insert(paylogMod);
     //------商品是否赠送积分
     //{//好酒多积分不直接入账
     //    DataTable prodt = DBCenter.JoinQuery("A.ProID,A.Pronum,B.PointVal", "ZL_CartPro", "ZL_Commodities", "A.ProID=B.ID", "A.OrderListID=" + mod.id);
     //    foreach (DataRow dr in prodt.Rows)
     //    {
     //        double point = DataConvert.CDouble(dr["PointVal"])*Convert.ToInt32(dr["Pronum"]);
     //        if (point > 0)
     //        {
     //            buser.AddMoney(mod.Userid, point, M_UserExpHis.SType.Point, "购买商品[" + dr["ProID"] + "],赠送积分");
     //        }
     //    }
     //}
     if (OrderFinish_Event != null)
     {
         OrderFinish_Event(mod, pinfo);
     }
 }