using System; using System.Collections.Generic; using System.Data; using System.Data.Entity; using System.Linq; using WX.CRM.BLL.Util; using WX.CRM.Common; using WX.CRM.DAL.Soft; using WX.CRM.IBLL.Soft; using WX.CRM.Model.Entity; namespace WX.CRM.BLL.Soft { public class SOFT_ACTIVEORDER_BL : ISOFT_ACTIVEORDER, ISOFT_ACTIVEORDER_Q { Soft_Order_DAL order_dal = new Soft_Order_DAL(); public bool CreateOrder(decimal productid, string resid, string username, decimal companyid, decimal salesid, int ordertype) { return order_dal.CreateOrder(productid, resid, username, companyid, salesid, ordertype); } public WX.CRM.Model.Entity.SOFT_ACTIVEORDER getOrder(decimal productId, string username, string resId) { using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext()) { resId = resId.Trim(); return db.SOFT_ACTIVEORDER.FirstOrDefault(p => p.PRODUCTID == productId && p.USERNAME == username && p.RESID == resId && p.ORDERSTATUS != 2 && p.ORDERSTATUS != 3); } } public List getOrderByResId(string resId) { using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext()) { resId = resId.Trim(); return db.SOFT_ACTIVEORDER.Where(p => db.RES_CUSTOMER.Where(m => m.CUSTOMERID == resId).Select(m => m.RESID).Contains(p.RESID)).ToList(); } } public bool UpdateOrder(ref ValidationErrors errors, WX.CRM.Model.Entity.SOFT_ACTIVEORDER order) { try { using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext()) { db.SOFT_ACTIVEORDER.Attach(order); db.Entry(order).State = EntityState.Modified; db.SaveChanges(); return true; } } catch (Exception ex) { errors.Add(ex.Message); return false; } } public WX.CRM.Model.Entity.SOFT_ACTIVEORDER getOrderByOrderId(decimal orderId) { using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext()) { return db.SOFT_ACTIVEORDER.FirstOrDefault(p => p.ORDERID == orderId); } } /// /// 审核列表 /// /// /// /// /// /// public List getOrderList(ref Pager pg, int status, DateTime? stime, DateTime? etime, int productId, string resid, string orderid, string username, string groupid, decimal userid) { using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext()) { var List = db.SOFT_ACTIVEORDER.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 ValidationErrors errors, decimal orderId) { using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext()) { string resmsg = ""; try { var order = db.SOFT_ACTIVEORDER.Where(p => p.ORDERID == orderId).FirstOrDefault(); if (order.ORDERSTATUS == 1) { return "已开通的订单不允许删除"; } var orderdetail = db.SOFT_ACTIVEDETAIL.Where(p => p.ORDERID == orderId).ToList(); order.ORDERSTATUS = 3; 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 (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext()) { string[] code = { "997365", "996365", "998365" }; try { var datalist = db.SOFT_ACTIVEORDER.Where(p => p.ORDERID != orderid && p.USERNAME == username && code.Contains(p.PRODUCTCODE)); foreach (SOFT_ACTIVEORDER 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 WX.CRM.Model.Entity.crmContext()) { var model = db.SOFT_ACTIVEORDER.FirstOrDefault(p => p.ORDERID == orderid); model.WEBORDERID = WEBORDERID; db.SOFT_ACTIVEORDER.Attach(model); db.Entry(model).State = EntityState.Modified; db.SaveChanges(); return true; } } public List getOrderByUsername(string username) { using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext()) { return db.SOFT_ACTIVEORDER.Where(p => p.USERNAME == username).ToList(); } } } }