279 lines
9.2 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
}
|