TG.WXCRM.V4/BLL/Soft/SOFT_ACTIVEORDER_BL.cs

220 lines
7.6 KiB
C#

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<WX.CRM.Model.Entity.SOFT_ACTIVEORDER> 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<WX.CRM.Model.Entity.SOFT_ACTIVEORDER>(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);
}
}
/// <summary>
/// 审核列表
/// </summary>
/// <param name="pg"></param>
/// <param name="status"></param>
/// <param name="stime"></param>
/// <param name="etime"></param>
/// <returns></returns>
public List<SOFT_ACTIVEORDER> 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<decimal>();
List = List.Where(m => userIds.Contains(m.CREATEUSER));
}
List = List.OrderByDescending(m => m.CTIME);
PagerUtil.SetPager<SOFT_ACTIVEORDER>(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<SOFT_ACTIVEORDER>(model).State = EntityState.Modified;
db.SaveChanges();
return true;
}
}
public List<SOFT_ACTIVEORDER> 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();
}
}
}
}