ComplianceServer/oldcode/BLL/Level2/L2_SOFT_ORDER_BL.cs

279 lines
9.2 KiB
C#

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<L2_SOFT_ORDER> 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<L2_SOFT_ORDER>(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);
}
}
/// <summary>
/// 审核列表
/// </summary>
/// <param name="pg"></param>
/// <param name="status"></param>
/// <param name="stime"></param>
/// <param name="etime"></param>
/// <returns></returns>
public List<L2_SOFT_ORDER> 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<decimal>();
List = List.Where(m => userIds.Contains(m.CREATEUSER));
}
List = List.OrderByDescending(m => m.CTIME);
PagerUtil.SetPager<L2_SOFT_ORDER>(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<L2_SOFT_ORDER>(model).State = EntityState.Modified;
db.SaveChanges();
return true;
}
}
public List<L2_SOFT_ORDER> getOrderByUsername(string username)
{
using (crmContext db = new crmContext())
{
return db.L2_SOFT_ORDER.Where(p => p.USERNAME == username).ToList();
}
}
}
}