using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using WX.CRM.BLL.Base; using WX.CRM.BLL.Util; using WX.CRM.Common; using WX.CRM.IBLL.Level2; using WX.CRM.Model.Entity; namespace WX.CRM.BLL.Level2 { public class L2_SOFT_ORDER_BL : IL2_SOFT_ORDER_Q { public bool CreateOrder(decimal productid, string productCode, string resid, string username, decimal companyid, decimal salesid, int ordertype, decimal days, decimal price, out decimal orderId, int? mainOrderId) { using (var db = new crmContext()) { L2_SOFT_ORDER model = new L2_SOFT_ORDER(); model.ORDERID = new SEQUENCES_BL().Seq_base_get(); model.RESID = resid; model.PRODUCTID = productid; model.PRODUCTCODE = productCode; model.USERNAME = username; model.ORDERSTATUS = 0; model.ORDERTYPE = ordertype; model.CREATEUSER = salesid; model.CTIME = DateTime.Now; model.COMPANYID = companyid; model.DAYS = days; model.PRICE = price; model.MAINORDERID = mainOrderId; LogHelper.Info(Utility.ObjectToJson(model)); db.L2_SOFT_ORDER.Add(model); orderId = model.ORDERID; return db.SaveChanges().GetResult(); } } public L2_SOFT_ORDER getOrder(decimal productId, string username, string resId) { using (crmContext db = new crmContext()) { resId = resId.Trim(); return db.L2_SOFT_ORDER.FirstOrDefault(p => p.PRODUCTID == productId && p.USERNAME == username && p.RESID == resId && p.ORDERSTATUS != 2 && p.ORDERSTATUS != 3); } } public List getOrderByResId(string resId, decimal? productId = null) { using (crmContext db = new crmContext()) { resId = resId.Trim(); var query = db.L2_SOFT_ORDER.Where(p => db.RES_CUSTOMER.Where(m => m.CUSTOMERID == resId).Select(m => m.RESID).Contains(p.RESID)); if (productId.HasValue) { query = query.Where(p => p.PRODUCTID == productId.Value && p.ORDERSTATUS == 1); } return query.OrderByDescending(p => p.ORDERID).ToList(); } } public bool UpdateOrder(ref Common.ValidationErrors errors, L2_SOFT_ORDER order) { try { using (crmContext db = new crmContext()) { db.L2_SOFT_ORDER.Attach(order); db.Entry(order).State = EntityState.Modified; db.SaveChanges(); return true; } } catch (Exception ex) { errors.Add(ex.Message); return false; } } public L2_SOFT_ORDER getOrderByOrderId(decimal orderId) { using (crmContext db = new crmContext()) { return db.L2_SOFT_ORDER.FirstOrDefault(p => p.ORDERID == orderId); } } public L2_SOFT_ORDER GetOrderByWebOrderId(string webOrderId) { using (crmContext db = new crmContext()) { return db.L2_SOFT_ORDER.FirstOrDefault(p => p.WEBORDERID == webOrderId); } } /// /// 审核列表 /// /// /// /// /// /// public List getOrderList(ref Common.Pager pg, int status, DateTime? stime, DateTime? etime, int productId, string resid, string orderid, string username, string groupid, decimal userid) { using (crmContext db = new crmContext()) { var List = db.L2_SOFT_ORDER.Where(m => m.ORDERTYPE != 3).AsQueryable(); if (!string.IsNullOrWhiteSpace(resid)) { List = List.Where(m => m.RESID == resid); } if (!string.IsNullOrWhiteSpace(username)) { string name = username.Trim(); List = List.Where(m => m.USERNAME == name); } if (!string.IsNullOrWhiteSpace(orderid)) { decimal id = Convert.ToDecimal(orderid); List = List.Where(m => m.ORDERID == id); } if (productId != -1) { List = List.Where(m => m.PRODUCTID == productId); } if (status != -1) { List = List.Where(m => m.ORDERSTATUS == status); } if (stime != null && stime != null) { List = List.Where(m => m.CTIME >= stime && m.CTIME < etime); } if (userid > 0) { List = List.Where(m => m.CREATEUSER == userid); } else if (!string.IsNullOrEmpty(groupid)) { decimal[] _groupids = OperationUtil.ConvertToDecimal(groupid.Split(',')); var userIds = db.BAS_INNERUSERGROUP.Where(m => _groupids.Contains(m.GID.Value)).Select(m => m.INNERUSERID).ToArray(); List = List.Where(m => userIds.Contains(m.CREATEUSER)); } List = List.OrderByDescending(m => m.CTIME); PagerUtil.SetPager(ref List, ref pg); return List.ToList(); } } public string deleteOrder(ref Common.ValidationErrors errors, decimal orderId) { using (crmContext db = new crmContext()) { string resmsg = ""; try { var order = db.L2_SOFT_ORDER.Where(p => p.ORDERID == orderId).FirstOrDefault(); if (order.ORDERSTATUS == 1) { return "已开通的订单不允许删除"; } order.ORDERSTATUS = 3; db.SaveChanges(); resmsg = "成功"; } catch (Exception ex) { resmsg = "系统错误"; LogHelper.Error(ex.Message + "|" + ex.StackTrace); throw ex; } return resmsg; } } public string closeOrder(decimal orderId) { using (crmContext db = new crmContext()) { string resmsg = ""; try { var order = db.L2_SOFT_ORDER.Where(p => p.ORDERID == orderId).FirstOrDefault(); if (order.ORDERSTATUS != 1) { return "开通订单才能关闭"; } order.ORDERSTATUS = 2; db.SaveChanges(); resmsg = "成功"; } catch (Exception ex) { resmsg = "系统错误"; LogHelper.Error(ex.Message + "|" + ex.StackTrace); throw ex; } return resmsg; } } //public bool BatchUpdateVip(decimal orderid, string username) //{ // using (crmContext db = new crmContext()) // { // string[] code = { "997365", "996365", "998365" }; // try // { // var datalist = db.L2_SOFT_ORDER.Where(p => p.ORDERID != orderid && p.USERNAME == username && code.Contains(p.PRODUCTCODE)); // foreach (L2_SOFT_ORDER order in datalist) // { // order.ORDERSTATUS = 2; // } // bool reslut = db.SaveChanges().GetResult(); // return reslut; // } // catch (Exception ex) // { // LogHelper.Error(ex.Message + "--------" + ex.StackTrace); // return false; // } // } //} public bool updatewebOrder(decimal orderid, string WEBORDERID) { using (var db = new crmContext()) { var model = db.L2_SOFT_ORDER.FirstOrDefault(p => p.ORDERID == orderid); model.WEBORDERID = WEBORDERID; db.L2_SOFT_ORDER.Attach(model); db.Entry(model).State = EntityState.Modified; db.SaveChanges(); return true; } } public List getOrderByUsername(string username) { using (crmContext db = new crmContext()) { return db.L2_SOFT_ORDER.Where(p => p.USERNAME == username).ToList(); } } } }