257 lines
11 KiB
C#
257 lines
11 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.Entity;
|
|
using System.Linq;
|
|
using WX.CRM.BLL.Base;
|
|
using WX.CRM.BLL.Util;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.DAL.Soft;
|
|
using WX.CRM.IBLL.Soft;
|
|
using WX.CRM.Model.Entity;
|
|
using WX.CRM.Model.Enum;
|
|
|
|
namespace WX.CRM.BLL.Soft
|
|
{
|
|
public class SOFT_CUSTOMER_BL : ISOFT_CUSTOMER, ISOFT_CUSTOMER_Q
|
|
{
|
|
#region 获取单条信息
|
|
/// <summary>
|
|
/// 获取实体
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
public WX.CRM.Model.Entity.SOFT_CUSTOMER GetModel(decimal id)
|
|
{
|
|
using (var db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
WX.CRM.Model.Entity.SOFT_CUSTOMER entry = db.SOFT_CUSTOMER.FirstOrDefault(m => m.CUSTOMERID == id);
|
|
return entry;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 获取分页数据列表
|
|
/// <summary>
|
|
/// 获取软件客户列表
|
|
/// </summary>
|
|
/// <param name="pager"></param>
|
|
/// <param name="softName">用户名</param>
|
|
/// <param name="saleId"></param>
|
|
/// <param name="resId">客户ID</param>
|
|
/// <param name="userStatus">用户状态</param>
|
|
/// <param name="optime1">权限开通日期1</param>
|
|
/// <param name="optime2">权限开通日期2</param>
|
|
/// <param name="endtime1">权限截止日期1</param>
|
|
/// <param name="endtime2">权限截止日期2</param>
|
|
/// <param name="groupId">组别</param>
|
|
/// <param name="inneruserId">员工</param>
|
|
/// <returns></returns>
|
|
public List<WX.CRM.Model.Entity.SOFT_CUSTOMER_Extend> GetList(ref Pager pager, string softName, decimal? saleId, string resId, decimal userStatus, DateTime? optime1, DateTime? optime2, DateTime? endtime1, DateTime? endtime2, string groupId, decimal? inneruserId)
|
|
{
|
|
using (var db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
var queryData = db.SOFT_CUSTOMER.AsQueryable();
|
|
if (!string.IsNullOrWhiteSpace(softName))
|
|
{
|
|
queryData = queryData.Where(m => m.SOFTNAME == softName);
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(resId))
|
|
queryData = queryData.Where(m => m.RESID == resId);
|
|
if (userStatus != 0)
|
|
queryData = queryData.Where(m => m.USERSTATUS == userStatus);
|
|
if (optime1.HasValue)
|
|
queryData = queryData.Where(m => m.OPENDATE >= optime1.Value);
|
|
if (optime2.HasValue)
|
|
{
|
|
optime2 = optime2.Value.AddDays(1);
|
|
queryData = queryData.Where(m => m.OPENDATE < optime2);
|
|
}
|
|
if (endtime1.HasValue)
|
|
queryData = queryData.Where(m => m.ENDDATE >= endtime1.Value);
|
|
if (endtime2.HasValue)
|
|
{
|
|
endtime2 = endtime2.Value.AddDays(1);
|
|
queryData = queryData.Where(m => m.ENDDATE < endtime2);
|
|
}
|
|
if (inneruserId != null)
|
|
{
|
|
queryData = queryData.Where(m => m.SALEUSERID.Value == inneruserId);
|
|
}
|
|
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);
|
|
queryData = queryData.Where(m => userids.Contains(m.SALEUSERID.Value));
|
|
}
|
|
if (saleId > 0)
|
|
queryData = queryData.Where(m => m.SALEUSERID.Value == saleId);
|
|
IQueryable<SOFT_CUSTOMER_Extend> query = from a in queryData
|
|
join e in db.BAS_INNERUSERGROUP on a.SALEUSERID equals e.INNERUSERID into tempE
|
|
from e in tempE.DefaultIfEmpty()
|
|
join d in db.BAS_INNERGROUP on e.GID equals d.GID into tempD
|
|
from d in tempD.DefaultIfEmpty()
|
|
select new SOFT_CUSTOMER_Extend()
|
|
{
|
|
CUSTOMERID = a.CUSTOMERID,
|
|
SOFTNAME = a.SOFTNAME,
|
|
USERNAME = a.USERNAME,
|
|
RESID = a.RESID,
|
|
REGCAMPAINID = a.REGCAMPAINID,
|
|
USERNO = a.USERNO,
|
|
IDCARD = a.IDCARD,
|
|
SOFTTYPE = a.SOFTTYPE,
|
|
PRODUCTCODE = a.PRODUCTCODE,
|
|
USERSTATUS = a.USERSTATUS,
|
|
OPENDATE = a.OPENDATE,
|
|
ENDDATE = a.ENDDATE,
|
|
CTIME = a.CTIME,
|
|
UTIME = a.UTIME,
|
|
SALEUSERID = a.SALEUSERID,
|
|
GroupName = d.GNAME
|
|
};
|
|
|
|
//排序
|
|
if (pager.order == "desc")
|
|
{
|
|
switch (pager.sort)
|
|
{
|
|
case "SOFTNAME":
|
|
query = query.OrderByDescending(c => c.SOFTNAME);
|
|
break;
|
|
case "OPENDATE":
|
|
query = query.OrderByDescending(c => c.OPENDATE);
|
|
break;
|
|
case "ENDDATE":
|
|
query = query.OrderByDescending(c => c.ENDDATE);
|
|
break;
|
|
case "SALEUSERID":
|
|
query = query.OrderByDescending(c => c.SALEUSERID);
|
|
break;
|
|
default:
|
|
query = query.OrderByDescending(c => c.CTIME);
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
switch (pager.sort)
|
|
{
|
|
case "SOFTNAME":
|
|
query = query.OrderBy(c => c.SOFTNAME);
|
|
break;
|
|
case "OPENDATE":
|
|
query = query.OrderBy(c => c.OPENDATE);
|
|
break;
|
|
case "ENDDATE":
|
|
query = query.OrderBy(c => c.ENDDATE);
|
|
break;
|
|
case "SALEUSERID":
|
|
query = query.OrderBy(c => c.SALEUSERID);
|
|
break;
|
|
default:
|
|
query = query.OrderBy(c => c.CTIME);
|
|
break;
|
|
}
|
|
}
|
|
PagerUtil.SetPager<WX.CRM.Model.Entity.SOFT_CUSTOMER_Extend>(ref query, ref pager);
|
|
|
|
return query.ToList();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 根据软件用户名获取信息
|
|
public List<WX.CRM.Model.Entity.SOFT_CUSTOMER> GetListBySoftName(string[] softName)
|
|
{
|
|
using (var db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
return db.SOFT_CUSTOMER.Where(m => m.SOFTTYPE == 1 && softName.Contains(m.SOFTNAME)).ToList();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
public void CleanSoftCustomer(List<WX.CRM.Model.Entity.SOFT_CUSTOMER> addList, List<WX.CRM.Model.Entity.SOFT_CUSTOMER> UpdateList)
|
|
{
|
|
using (var db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
SEQUENCES_BL pkid = new SEQUENCES_BL();
|
|
foreach (var addModel in addList)
|
|
{
|
|
addModel.CUSTOMERID = pkid.Seq_base_get(PKIDType.LargeTable);
|
|
db.SOFT_CUSTOMER.Add(addModel);
|
|
}
|
|
foreach (var updateModel in UpdateList)
|
|
{
|
|
db.SOFT_CUSTOMER.Attach(updateModel);
|
|
db.Entry<WX.CRM.Model.Entity.SOFT_CUSTOMER>(updateModel).State = EntityState.Modified;
|
|
}
|
|
db.SaveChanges();
|
|
}
|
|
}
|
|
|
|
public void setSoftCustomerSalerId()
|
|
{
|
|
new Soft_Customer_DAL().setSoftCustomerSalerId();
|
|
}
|
|
public void ComputeSoftCustomer(decimal impid)
|
|
{
|
|
new Soft_Customer_DAL().ComputeSoftCustomer(impid);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 批量修改
|
|
/// </summary>
|
|
/// <param name="customer_lists"></param>
|
|
public bool UpdateList(ref ValidationErrors errors, List<SOFT_CUSTOMER> customer_lists)
|
|
{
|
|
try
|
|
{
|
|
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
foreach (var model in customer_lists)
|
|
{
|
|
db.SOFT_CUSTOMER.Attach(model);
|
|
db.Entry<WX.CRM.Model.Entity.SOFT_CUSTOMER>(model).State = EntityState.Modified;
|
|
}
|
|
db.SaveChanges();
|
|
return true;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
errors.Add(ex.Message);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
public int SoftCustomerCount()
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
decimal userid_999 = db.BAS_INNERUSER.FirstOrDefault(p => p.EID == 9999).PKID;
|
|
//非退款状态总数
|
|
return db.SOFT_CUSTOMER.Where(p => p.SALEUSERID == userid_999 && p.USERSTATUS != 4).Count();
|
|
}
|
|
}
|
|
|
|
|
|
public void ListOfSoftSalerCommit(decimal saleruserid, decimal opuserid, int count)
|
|
{
|
|
new Soft_Customer_DAL().ListOfSoftSalerCommit(saleruserid, opuserid, count);
|
|
}
|
|
|
|
public List<MemoDto> getServiceMemo(string[] resid)
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
var serviceData = db.ORD_SERVICEMEMO.Where(p => resid.Contains(p.RESID)).Select(p => new MemoDto() { RESID = p.RESID, CTIME = p.CTIME });
|
|
return serviceData.ToList();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|