using CRM.Core.BLL.Util;
using CRM.Core.Common.Layui;
using CRM.Core.DAL.Soft;
using CRM.Core.Model.Entity;
using CRM.Core.Model.Map;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using WX.CRM.Common;
namespace CRM.Core.BLL.Soft
{
public class SOFT_USER_BL
{
private Soft_User_DAL userDal = new Soft_User_DAL();
#region 添加
///
/// 添加
///
///
///
public bool Create(ref ValidationErrors errors, CRM.Core.Model.Entity.SOFT_USER model)
{
try
{
using (CRM.Core.Model.Entity.zxdContext db = new CRM.Core.Model.Entity.zxdContext())
{
model.CTIME = DateTime.Now;
db.SOFT_USER.Add(model);
return db.SaveChanges().GetResult();
}
}
catch (Exception ex)
{
errors.Add(ex.Message);
return false;
}
}
#endregion
public List GetUserList_userName(string[] userNames)
{
using (var db = new CRM.Core.Model.Entity.zxdContext())
{
return db.SOFT_USER.Where(p => userNames.Contains(p.USERNAME)).ToList();
}
}
///
/// 查询单个username信息
///
///
///
public SOFT_USER GetUser_userName(string userName)
{
using (var db = new CRM.Core.Model.Entity.zxdContext())
{
return db.SOFT_USER.Where(p => p.USERNAME == userName).FirstOrDefault();
}
}
///
/// 查询单个username信息
///
///
///
public SOFT_USER GetUser_userNameByCardNo(string userNo)
{
using (var db = new CRM.Core.Model.Entity.zxdContext())
{
decimal cradNo = Convert.ToDecimal(userNo);
return db.SOFT_USER.Where(p => p.USERNO == cradNo).FirstOrDefault();
}
}
#region 无主用户
public List geUnAgentUserList(ref Pager pager, DateTime? ctime, DateTime? etime, string username, decimal? regtag)
{
DataSet ds = new Soft_User_DAL().geUnAgentUserList(ref pager, ctime, etime, username, regtag);
List list = ds.Tables[0].ToList();
//存储过程里返回一行 username ='0',userno =总数量
SOFT_USER model = list.FirstOrDefault(p => p.USERNAME == "0");
if (model != null)
{
pager.totalRows = Convert.ToInt32(model.USERNO);
list.Remove(model);
}
return list;
}
#endregion
public List GetUserByResid(string resid)
{
using (var db = new zxdContext())
{
var residStr = db.RES_CUSTOMER.Where(x => x.UMID == resid).FirstOrDefault()?.RESID;
var q = (from t1 in db.SOFT_USER
join t2 in db.RES_CUSTOMERUSER on t1.USERNAME equals t2.USERNAME
where t2.RESID == residStr
select t1
);
return q.ToList();
}
}
public SOFT_USER_EXTEND GetUser_ByResId(string username, string resid)
{
using (var db = new zxdContext())
{
//return db.SOFT_USER.join;
SOFT_USER_EXTEND user = (from q in db.SOFT_USER
join e in db.RES_CUSTOMERUSER on q.USERNAME equals e.USERNAME
where e.RESID == resid && q.USERNAME == username
select new SOFT_USER_EXTEND
{
USERNAME = q.USERNAME,
RESID = e.RESID,
USERNO = q.USERNO,
REGCAMPAINID = q.REGCAMPAINID
}).FirstOrDefault();
return user;
}
}
///
/// 根据resid查询单个username信息
///
///
///
public SOFT_USER_EXTEND GetUser_ByUserName(string username)
{
using (var db = new zxdContext())
{
//return db.SOFT_USER.join;
SOFT_USER_EXTEND user = (from q in db.SOFT_USER
join e in db.RES_CUSTOMERUSER on q.USERNAME equals e.USERNAME
where q.USERNAME == username
select new SOFT_USER_EXTEND
{
USERNAME = q.USERNAME,
RESID = e.RESID,
USERNO = q.USERNO,
REGCAMPAINID = q.REGCAMPAINID
}).FirstOrDefault();
return user;
}
}
public SOFT_USER GetUserOne_ByUserName(string username)
{
using (var db = new zxdContext())
{
//return db.SOFT_USER.join;
return db.SOFT_USER.FirstOrDefault(M => M.USERNAME == username);
}
}
///
/// 获取用户列表
///
///
public List GetSoftUser(ref Laypage pager, string username, string resid, decimal? companyid, DateTime? stime, DateTime? etime)
{
using (var db = new zxdContext())
{
var queryData = db.SOFT_USER.AsQueryable();
if (!string.IsNullOrEmpty(username))
{
username = username.Trim();
queryData = queryData.Where(m => m.USERNAME == username);
}
if (!string.IsNullOrEmpty(resid))
{
resid = resid.Trim();
queryData = queryData.Where(m => m.RESID == resid);
}
if (companyid.HasValue)
{
queryData = queryData.Where(m => m.COMPANYID == companyid);
}
if (stime.HasValue)
{
queryData = queryData.Where(m => m.REGDATE >= stime);
}
if (etime.HasValue)
{
etime = etime.Value.AddDays(1);
queryData = queryData.Where(m => m.REGDATE < etime);
}
//排序
if (pager.order == "desc")
{
switch (pager.sort)
{
case "CTIME":
queryData = queryData.OrderByDescending(c => c.REGDATE);
break;
case "USERNAME":
queryData = queryData.OrderByDescending(c => c.USERNAME);
break;
default:
queryData = queryData.OrderByDescending(c => c.REGDATE);
break;
}
}
else
{
switch (pager.sort)
{
case "CTIME":
queryData = queryData.OrderBy(c => c.REGDATE);
break;
case "USERNAME":
queryData = queryData.OrderBy(c => c.USERNAME);
break;
default:
queryData = queryData.OrderBy(c => c.REGDATE);
break;
}
}
PagerUtil.SetPager(ref queryData, ref pager);//分页
return queryData.ToList();
}
}
public SOFT_USER_EXTEND GetUserNameStrs(string companyCode, DateTime? stime, DateTime? etime)
{
if (!stime.HasValue)
{
stime = DateTime.Now.AddDays(-1).Date;
}
if (!etime.HasValue)
{
etime = DateTime.Now.AddDays(1).Date;
}
else
{
etime = etime.Value.AddDays(1).Date;
}
SOFT_USER_EXTEND model = null;
DataSet ds = new Soft_User_DAL().GetUserNameStrs(companyCode, stime, etime);
if (ds != null && ds.Tables[0] != null)
{
model = new SOFT_USER_EXTEND { USERNAME = ds.Tables[0].Rows[0][0].ToString() };
}
return model;
}
public DataSet GetRegCountToUP(DateTime? ctime, DateTime? etime, int schannel, int echannel, int plat)
{
return userDal.GetRegCountToUP(ctime, etime, schannel, echannel, plat);
}
}
}