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