//保存 protected void btn_Click(object sender, EventArgs e) { int id = DataConverter.CLng(hforderid.Value); M_OrderList orderinfo = orderBll.GetOrderListByid(id);//GetCartProOrderID B_CartPro cartproBll = new B_CartPro(); DataTable dts = cartproBll.GetCartProOrderID(id); }
public static string TlpDeal(string tlp, DataRow dr) { B_CartPro cartProBll = new B_CartPro(); string result = tlp; if (dr != null) { #region dt中字段替换 DataTable dt = dr.Table; //遍历表格字段并替换 for (int i = 0; i < dt.Columns.Count; i++) { string colname = dt.Columns[i].ColumnName; string value = dr[colname].ToString(); if (dt.Columns[i].DataType.ToString().Equals("System.Decimal")) { value = DataConvert.CDouble(dr[colname]).ToString("f2"); } result = result.Replace("{" + colname + "}", value); } #endregion #region CartPro扩展字段 //CartPro字段,只取第一条信息循环输出 if (tlp.Contains("{CartPro.")) { DataTable cartDT = new DataTable(); cartDT = cartProBll.SelByOrderID(Convert.ToInt32(dt.Rows[0]["ID"])); if (cartDT.Rows.Count > 0) { dr = cartDT.Rows[0]; for (int i = 0; i < cartDT.Columns.Count; i++) { string colname = cartDT.Columns[i].ColumnName; string value = dr[colname].ToString(); if (cartDT.Columns[i].DataType.ToString().Equals("System.Decimal")) { value = Convert.ToDouble(dr[colname]).ToString("f2"); } result = result.Replace("{CartPro." + colname + "}", value); } } } #endregion // #region Extend扩展字段 // if (dt.Columns.Contains("Extend") && (!string.IsNullOrEmpty(dr["Extend"].ToString())))//扩展字段,可自由定义 // { // JObject model = (JObject)JsonConvert.DeserializeObject(dr["Extend"].ToString()); // foreach (var item in model) // { // result = result.Replace("{Extend."+item.Key+"}",item.Value.ToString()); // } // } //#endregion } //标签解析 //B_CreateHtml createBll = new B_CreateHtml(HttpContext.Current.Request); //result = createBll.CreateHtml(result); return(result); }
public string GetProname(int orderid) { B_CartPro cartProBll = new B_CartPro(); string result = ""; DataTable dt = cartProBll.SelByOrderID(orderid); for (int i = 0; i < dt.Rows.Count; i++) { result += dt.Rows[i]["Proname"].ToString() + "x" + dt.Rows[i]["Pronum"].ToString() + " ¥" + DataConvert.CDouble(dt.Rows[i]["AllMoney"].ToString()).ToString("0.00") + "元 "; } return(result); }
private string GetProName(M_OrderList orderMod) { B_CartPro cartBll = new B_CartPro(); DataTable dt = cartBll.SelByOrderID(orderMod.id); string result = ""; foreach (DataRow dr in dt.Rows) { result += "[" + dr["ProName"] + "(数量:" + dr["ProNum"] + ")]<br />"; } return(result); }
public void fahuo(int id, String Email) { B_CartPro cpl = new B_CartPro(); B_OrderList oll = new B_OrderList(); B_Product pll = new B_Product(); B_Stock Sll = new B_Stock(); //历遍清单所有商品数量,查找库存/////////////////// DataTable Unew = cpl.GetCartProOrderID(id); //获得详细清单列表 M_OrderList orlist = oll.GetOrderListByid(id); for (int s = 0; s < Unew.Rows.Count; s++) { int Onum = ZoomLa.Common.DataConverter.CLng(Unew.Rows[s]["Pronum"]); int Opid = ZoomLa.Common.DataConverter.CLng(Unew.Rows[s]["ProID"]); M_Product pdin = pll.GetproductByid(Opid);//获得商品信息 if (pdin.JisuanFs == 0) { int pstock = pdin.Stock - Onum;//库存结果,返回的商品数量 pll.ProUpStock(Opid, pstock); } M_Stock SData = new M_Stock(); SData.id = 0; SData.proid = Opid; SData.stocktype = 1; SData.proname = pdin.Proname; SData.danju = "CK" + orlist.OrderNo.ToString(); SData.adduser = orlist.Reuser.ToString(); SData.addtime = DateTime.Now; SData.content = "订单:" + orlist.Reuser.ToString() + "发货"; SData.Pronum = ZoomLa.Common.DataConverter.CLng(Unew.Rows[0]["Pronum"]); Sll.AddStock(SData); } string str = "StateLogistics=1"; if (!string.IsNullOrEmpty(Email)) { str += ",ExpressDelivery='" + Email + "'"; } oll.UpOrderinfo(str, id); PromotionComfirm(orlist); }
/// <summary> /// 如果是推广商品就添加推广信息 /// </summary> /// <param name="orlist"></param> public void PromotionComfirm(M_OrderList orlist) { B_ArticlePromotion bap = new B_ArticlePromotion(); B_CartPro cpl = new B_CartPro(); DataTable mcp; mcp = cpl.GetCartProOrderID(orlist.id); if (mcp != null && mcp.Rows.Count > 0) { if (orlist.Settle == 1) { for (int i = 0; i < mcp.Rows.Count; i++) { Response.Write(mcp.Rows[i]["id"].ToString()); M_ArticlePromotion map = bap.GetSelectBySqlParams("select * from ZL_ArticlePromotion where cartproid=" + mcp.Rows[i]["id"].ToString(), null); if (map.Id > 0) { map.IsEnable = true; bap.GetUpdate(map); } } } } }
/// <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_OrderList orderBll = new B_OrderList(); B_CartPro cartBll = new B_CartPro(); B_Order_PayLog paylogBll = new B_Order_PayLog(); B_User buser = new B_User(); //订单已处理,避免重复(如已处理过,则继续处理下一张订单) if (mod.OrderStatus >= 99) { ZLLog.L(ZoomLa.Model.ZLEnum.Log.safe, new M_Log() { Action = "支付回调异常,订单状态已为99", Message = "订单号:" + mod.OrderNo + ",支付单:" + pinfo.PayNo }); return; } //已经收到钱了,所以先执行 orderBll.UpOrderinfo("Paymentstatus=1,Receivablesamount=" + pinfo.MoneyTrue, mod.id); if (mod.Ordertype == (int)M_OrderList.OrderEnum.Domain)//域名订单 { orderBll.UpOrderinfo("OrderStatus=1", mod.id); //Response.Redirect("~/Plugins/Domain/DomReg2.aspx?OrderNo=" + mod.OrderNo); } else if (mod.Ordertype == (int)M_OrderList.OrderEnum.IDC)//IDC服务 { orderBll.UpOrderinfo("OrderStatus=99", mod.id); cartBll.IDC_UpdateEndTimeByOid(mod.id); } else if (mod.Ordertype == (int)M_OrderList.OrderEnum.Purse)//余额充值,不支持银币 { buser.ChangeVirtualMoney(mod.Userid, new M_UserExpHis() { score = (int)mod.Ordersamount, ScoreType = (int)M_UserExpHis.SType.Purse, detail = "余额充值,订单号:" + mod.OrderNo }); orderBll.UpOrderinfo("OrderStatus=99", mod.id); //成功的订单 } else if ((mod.Ordertype == (int)M_OrderList.OrderEnum.IDCRen)) //IDC服务续费 { orderBll.UpOrderinfo("OrderStatus=99", mod.id); B_Product proBll = new B_Product(); //更新旧订单的期限 if (string.IsNullOrEmpty(mod.Ordermessage))//购物车ID { //function.WriteErrMsg("出错,无需续费订单信息,请联系管理员!!!"); throw new Exception("出错,无续费订单信息,请联系管理员"); } M_CartPro newCartMod = cartBll.SelModByOrderID(mod.id);//新购物车只是取其商品ID与数量等 M_Product proMod = proBll.GetproductByid(newCartMod.ProID); //更新延长旧服务的到期时间,旧服务是存在CartPro的EndTime当中 M_CartPro oldCartMod = cartBll.SelReturnModel(Convert.ToInt32(mod.Ordermessage)); if (oldCartMod.EndTime < DateTime.Now) { oldCartMod.EndTime = DateTime.Now; //如已过期,则将时间更新至今日 } oldCartMod.EndTime = proBll.GetEndTime(proMod, newCartMod.Pronum, oldCartMod.EndTime); cartBll.UpdateByID(oldCartMod); //paylogMod.Remind = "为" + mod.Ordermessage + "订单续费(购物车)"; } else if (mod.Ordertype == (int)M_OrderList.OrderEnum.Cloud)//云购订单 { //根据份数生成幸运码,写入表中,并减去库存 ZL_Order_LuckCode } else//其他旅游订单等,只更新状态 { orderBll.UpOrderinfo("OrderStatus=99", mod.id);//成功的订单 } //-------支付成功处理,并写入日志 paylogMod.Remind += "订单" + mod.OrderNo + "购买生效"; paylogMod.OrderID = mod.id; paylogMod.PayMoney = mod.Ordersamount; paylogMod.PayMethod = (int)M_Order_PayLog.PayMethodEnum.Other;//外部指定 paylogMod.PayPlatID = pinfo.PayPlatID; paylogBll.insert(paylogMod); }
public static void OrderFinish(M_OrderList mod, M_Payment pinfo) { B_OrderList orderBll = new B_OrderList(); B_CartPro cpBll = new B_CartPro(); B_User buser = new B_User(); //B_User_Card cdBll = new B_User_Card(); //B_User_StoreUser suBll = new B_User_StoreUser(); switch (mod.Ordertype) { case (int)M_OrderList.OrderEnum.Domain: { B_Shop_MoneyRegular regBll = new B_Shop_MoneyRegular(); //M_User_StoreUser suMod = suBll.SelReturnModel(Convert.ToInt32(mod.Receiver)); //M_User_Card cdMod = cdBll.SelModelByUid(suMod.ID); //cdMod.CardPurse += mod.Ordersamount; //cdBll.UpdateByID(cdMod); int regular = DataConvert.CLng(mod.Money_code); M_Shop_MoneyRegular regMod = null; if (regular > 0) { regMod = regBll.SelReturnModel(regular); } else { regMod = new M_Shop_MoneyRegular(); regMod.Min = mod.Ordersamount; } buser.AddMoney(DataConvert.CLng(mod.Receiver), regMod.Min + regMod.Purse, M_UserExpHis.SType.Purse, "充值,订单号:" + mod.OrderNo + ",充值:" + regMod.Min + ",赠送:" + regMod.Purse); if (regMod.Point > 0) { buser.AddMoney(DataConvert.CLng(mod.Receiver), regMod.Point, M_UserExpHis.SType.Point, "充值赠送积分,订单号:" + mod.OrderNo); } } break; case (int)M_OrderList.OrderEnum.Cloud: //通过微信下的预约订单 { //付款后增加预约记录,由收银员完成开单 //{ id: 0, proid: 0, proname: "", empid: 0, empname: "" }; DataTable cpDT = cpBll.SelByOrderID(mod.id); List <M_Ex_PreOrder_Item> itemList = new List <M_Ex_PreOrder_Item>(); foreach (DataRow dr in cpDT.Rows) { M_Ex_PreOrder_Item model = new M_Ex_PreOrder_Item(); model.proid = Convert.ToInt32(dr["ProID"]); model.proname = DataConvert.CStr(dr["Proname"]); model.empid = DataConvert.CLng(dr["code"]); model.empname = DataConvert.CStr(dr["Proinfo"]); itemList.Add(model); } B_Ex_PreOrder poBll = new B_Ex_PreOrder(); M_Ex_PreOrder poMod = new M_Ex_PreOrder(); poMod.ClientMobile = mod.Mobile.ToString(); poMod.ClientName = mod.Rename; poMod.ClientDate = DataConvert.CDate(mod.ExpTime); poMod.ClientNeed = JsonConvert.SerializeObject(itemList); poMod.Remark = mod.Ordermessage; poMod.Source = "微信"; poMod.OrderID = mod.id; poMod.ID = poBll.Insert(poMod); } break; default: //普通订单,计算提成,赠送积分 { B_Shop_Bonus bnBll = new B_Shop_Bonus(); DataTable cpDT = cpBll.SelByOrderID(mod.id); foreach (DataRow dr in cpDT.Rows) { int code = DataConvert.CLng(dr["code"]); int proid = DataConvert.CLng(dr["Proid"]); double allMoney = DataConvert.CDouble(dr["AllMoney"]); if (code < 1) { continue; } #region 技师计算提成 //技师绑定了何种分成方案, M_UserInfo jsMod = buser.SelReturnModel(code); M_Shop_Bonus bnMod = null; if (jsMod.VIP < 1) { bnMod = bnBll.SelModelByDefault(); } else { bnMod = bnBll.SelReturnModel(jsMod.VIP); } //无提成方案则不计算 if (bnMod != null) { //根据商品ID,看有无匹配的子数据类型 M_Shop_Bonus bnMod2 = bnBll.SelModelByProID(bnMod.ID, proid); if (bnMod2 != null) { bnMod = bnMod2; } //-------计算提成,写入CartPro中 double bonus = 0; switch (bnMod.BonusType) { case 0: bonus = allMoney * (DataConvert.CDouble(bnMod.BonusValue1) * 0.01); break; case 1: bonus = DataConvert.CDouble(bnMod.BonusValue1); break; } DBCenter.UpdateSQL("ZL_CartPro", "AllMoney_Json='" + bonus.ToString("F2") + "'", "ID=" + dr["ID"]); } #endregion } //-------赠送积分,默认每一元送一分 buser.AddMoney(DataConvert.CLng(mod.Receiver), mod.Receivablesamount, M_UserExpHis.SType.Point, "订单[" + mod.id + "]赠送积分"); } break; } }