using System.Collections.Generic;
using System.Linq;
using System.Text;
using CommonHelper;
using Dapper;
using GasolineBlend.Entity;
namespace GasolineBlend.DAL
{
public class AccountDAL : BaseDAL
{
#region 列表集合List
///
/// 获取用户信息全集
///
///
public List GetAccountList()
{
var sql = $"select * from sysAccount order by id asc";
return Conn.Query(sql).ToList();
}
///
/// 根据角色获取账户列表
///
///
///
public List GetAccountList(int RoleId)
{
var sql = $"select a.*,b.AccCompanyRemark as CompanyRemark,b.SearchLtdLimit,b.TypeNoteId from sysAccount as a left join sysAccountGroup as b ON a.CompanyId=b.AccCompanyId where a.RoleId={RoleId} and a.IsDeleted=0 order by a.id asc";
return Conn.Query(sql).ToList();
}
///
/// 根据角色+企业Id获取账户列表
///
///
///
///
public List GetAccountList(int RoleId,int CompanyId)
{
var sql = $"select a.*,b.AccCompanyRemark as CompanyRemark,b.SearchLtdLimit,b.TypeNoteId from sysAccount as a left join sysAccountGroup as b ON a.CompanyId=b.AccCompanyId where a.RoleId={RoleId} and a.CompanyId={CompanyId} and a.IsDeleted=0 order by a.id asc";
return Conn.Query(sql).ToList();
}
///
/// 提取不包含某个用户的用户组清单
///
///
///
///
///
//public List GetAccountList(int RoleId, int CompanyId,int UserIdExclude)
//{
// var sql = $"select * from sysAccount where RoleId={RoleId} and CompanyId={CompanyId} and Id<>{UserIdExclude} and IsDeleted=0 order by id asc";
// return Conn.Query(sql).ToList();
//}
#endregion
#region 获取信息Id
///
/// 根据用户id获取用户信息
///
/// 用户id
///
public Account GetAccount(int id = 0)
{
var sql = new StringBuilder("select a.*,b.AccCompanyRemark as CompanyRemark,b.SearchLtdLimit,b.TypeNoteId from sysAccount as a left join sysAccountGroup as b ON a.CompanyId=b.AccCompanyId");
DynamicParameters paras = new DynamicParameters();
if (id != 0)
{
sql = sql.Append(" where a.id=@id");
paras.Add("id", id);
return Conn.QueryFirstOrDefault(sql.ToString(), paras);
}
else
{
return null;
}
}
///
/// 根据用户手机号获取用户id
///
/// 用户id
///
public int GetMobileAccountid(string Mobile)
{
var sql = "SELECT id FROM sysAccount WHERE Mobile = @Mobile";
var result = Conn.Query(sql, new { Mobile = Mobile }).SingleOrDefault();
if (result == 0)
{
return -1;
}
return result;
}
///
/// 根据Id 获取列表
///
///
///
public List GetAccountByIdList(string Id)
{
var sql = $"select RealName from sysAccount where Id in({Id})";
return Conn.Query(sql).ToList();
}
///
/// 根据用户名获取用户信息
///
///
///
///
public Account GetAccount(string loginName, string companyRemark )
{
var sql = new StringBuilder("select a.*,b.AccCompanyRemark as CompanyRemark from sysAccount as a left join sysAccountGroup as b ON a.CompanyId=b.AccCompanyId");
DynamicParameters paras = new DynamicParameters();
if (!loginName.IsNullOrEmpty())
{
sql = sql.Append(" where (a.loginName=@loginName or a.Mobile=@loginName) and b.AccCompanyRemark=@CompanyRemark");
paras.Add("loginName", loginName);
paras.Add("CompanyRemark", companyRemark);
return Conn.QueryFirstOrDefault(sql.ToString(), paras);
}
else
{
return null;
}
}
///
/// 根据微信openId获取用户信息
///
///
///
public Account GetAccount(string WXopenid)
{
var sql = new StringBuilder("select a.*,b.AccCompanyRemark as CompanyRemark from sysAccount as a left join sysAccountGroup as b ON a.CompanyId=b.AccCompanyId");
DynamicParameters paras = new DynamicParameters();
if (!WXopenid.IsNullOrEmpty())
{
sql = sql.Append(" where a.WXopenid=@WXopenid");
paras.Add("WXopenid", WXopenid);
return Conn.QueryFirstOrDefault(sql.ToString(), paras);
}
else
{
return null;
}
}
///
/// 获取预警配置基本信息--邮件/微信
///
///
///
public AccountAlarm GetAlarmInfo(int id)
{
var sql = new StringBuilder("select * from sysAccount");
DynamicParameters paras = new DynamicParameters();
if (id>0)
{
sql = sql.Append(" where id=@id");
paras.Add("id", id);
return Conn.QueryFirstOrDefault(sql.ToString(), paras);
}
else
{
return null;
}
}
#endregion
#region 存在判断Id
///
/// 判断用户是否存在
///
///
///
///
public bool ExistAccount(Account account, bool ModifyFlag)
{
string strCompareSQL = (ModifyFlag == false ? "" : " and id<>@id");
var sql = $"select * from sysAccount where LoginName=@LoginName and CompanyId=@CompanyId" + strCompareSQL;
return Conn.ExecuteScalar(sql, account) > 0;
}
///
/// 判断用户是否存在Reg
///
///
///
public bool ExistAccount(Account account)
{
var sql = $"select * from sysAccount where LoginName=@LoginName";
return Conn.ExecuteScalar(sql, account) > 0;
}
///
/// 判断用户名称是否重名
///
///
///
///
public bool ExistAccountRealName(Account account, bool ModifyFlag)
{
string strCompareSQL = (ModifyFlag == false ? "" : " and id<>@id");
var sql = $"select * from sysAccount where RealName=@RealName and CompanyId=@CompanyId " + strCompareSQL;
return Conn.ExecuteScalar(sql, account) > 0;
}
///
/// 判断机构名称是否重名
///
///
///
///
public bool ExistAccountCompanyName(Account account, bool ModifyFlag)
{
string strCompareSQL = (ModifyFlag == false ? "" : " and id<>@id");
var sql = $"select * from sysAccount where CompanyName=@CompanyName" + strCompareSQL;
return Conn.ExecuteScalar(sql, account) > 0;
}
#endregion
#region 添加部分
///
/// 添加用户账户信息
///
///
///
public int AddAccount(Account account)
{
var sql = $"insert into sysAccount (LoginName,Password,AccountLimit,CompanyName,CompanyChar,ClassLabel,ClassFirst,ClassSecond,ClassThird,Country,Province,City,RealName,Mobile,Mail,QQ,Wechat,Address,RoleId,CompanyId,AuthResultFlag,MoneyMonitorId,CompanyMonitorId,CurrentTypeId,CurrentTypeName,CurrentRedirect) Values" +
$"(@LoginName,@Password,@AccountLimit,@CompanyName,@CompanyChar,@ClassLabel,@ClassFirst,@ClassSecond,@ClassThird,@Country,@Province,@City,@RealName,@Mobile,@Mail,@QQ,@Wechat,@Address,@RoleId,@CompanyId,@AuthResultFlag,@MoneyMonitorId,@CompanyMonitorId,@CurrentTypeId,@CurrentTypeName,@CurrentRedirect);select @@IDENTITY;";
return Conn.ExecuteScalar(sql, account) ;
}
#endregion
#region 修改部分
///
/// 修改用户账户信息
///
///
///
public bool UpdateAccount(Account account)
{
var sql = $"update sysAccount set AccountLimit=@AccountLimit,CompanyName=@CompanyName," +
$"CompanyChar=@CompanyChar,ClassLabel=@ClassLabel,ClassFirst=@ClassFirst,ClassSecond=@ClassSecond,ClassThird=@ClassThird," +
$"Country=@Country,Province=@Province,City=@City,RealName=@RealName,Mobile=@Mobile,Mail=@Mail,QQ=@QQ,Wechat=@Wechat,Address=@Address,AuthResultFlag=@AuthResultFlag,MoneyMonitorId=@MoneyMonitorId,CompanyMonitorId=@CompanyMonitorId where Id=@Id;";
DynamicParameters paras = new DynamicParameters();
paras.Add("AccountLimit", account.AccountLimit);
paras.Add("CompanyName", account.CompanyName);
paras.Add("CompanyChar", account.CompanyChar);
paras.Add("ClassLabel", account.ClassLabel);
paras.Add("ClassFirst", account.ClassFirst);
paras.Add("ClassSecond", account.ClassSecond);
paras.Add("ClassThird", account.ClassThird);
paras.Add("Country", account.Country);
paras.Add("Province", account.Province);
paras.Add("City", account.City);
paras.Add("RealName", account.RealName);
paras.Add("Mobile", account.Mobile);
paras.Add("Mail", account.Mail);
paras.Add("QQ", account.QQ);
paras.Add("Wechat", account.Wechat);
paras.Add("Address", account.Address);
paras.Add("AuthResultFlag",account.AuthResultFlag);
paras.Add("MoneyMonitorId", account.MoneyMonitorId);
paras.Add("CompanyMonitorId", account.CompanyMonitorId);
paras.Add("Id", account.Id);
return Conn.Execute(sql, paras) > 0;
}
///
/// 修改当前版本状态
///
///
///
///
public bool UpdCurrentTypeId(int CurrentTypeId,string CurrentTypeName,string Redirect ,int Id)
{
var sql = $"update sysAccount set CurrentTypeId={CurrentTypeId} ,CurrentTypeName='{CurrentTypeName}',CurrentRedirect='{Redirect}' where Id={Id}";
return Conn.Execute(sql) > 0;
}
///
/// 更新用户基本信息
///
///
///
public bool UpdateAccountBasic(Account account)
{
var sql = $"update sysAccount set RealName=@RealName,Mobile=@Mobile,Mail=@Mail,QQ=@QQ,Wechat=@Wechat,Address=@Address where Id=@Id;";
DynamicParameters paras = new DynamicParameters();
paras.Add("RealName", account.RealName);
paras.Add("Mobile", account.Mobile);
paras.Add("Mail", account.Mail);
paras.Add("QQ", account.QQ);
paras.Add("Wechat", account.Wechat);
paras.Add("Address", account.Address);
paras.Add("Id", account.Id);
return Conn.Execute(sql, paras) > 0;
}
///
/// 更新用户基本信息
///
///
///
public bool UpdateAccountAddress(Account account)
{
var sql = $"update sysAccount set Address=@Address where Id=@Id;";
DynamicParameters paras = new DynamicParameters();
paras.Add("Address", account.Address);
paras.Add("Id", account.Id);
return Conn.Execute(sql, paras) > 0;
}
///
/// 绑定微信账户-登录
///
///
///
///
///
///
///
public bool BindWXAccount(string userName, string password, string companyRemark, string WXopenid, string WXunionid)
{
var sql = $"update sysAccount set WXopenid='{WXopenid}',WXunionid='{WXunionid}' where LoginName='{userName}' and Password='{password}' and CompanyId in (select AccCompanyId from sysAccountGroup where AccCompanyRemark='{companyRemark}')";
return Conn.Execute(sql) > 0;
}
///
/// 绑定微信账户-预警
///
///
///
///
///
///
public bool BindWXAlarmAccount(string userName, string password, string companyRemark, string AlarmWXId)
{
var sql = $"update sysAccount set AlarmWXId='{AlarmWXId}' where LoginName='{userName}' and Password='{password}' and CompanyId in (select AccCompanyId from sysAccountGroup where AccCompanyRemark='{companyRemark}')";
return Conn.Execute(sql) > 0;
}
///
/// 更新标准版默认的ProjId和Mode
///
///
///
public bool UpdateDefaultProjIdMode(Account model)
{
var sql = "update sysAccount set DefaultProjId=@DefaultProjId,DefaultMode=@DefaultMode where Id=@Id;";
DynamicParameters paras = new DynamicParameters();
paras.Add("DefaultProjId", model.DefaultProjId);
paras.Add("DefaultMode", model.DefaultMode);
paras.Add("Id", model.Id);
return Conn.Execute(sql, paras) > 0;
}
///
/// 更新极速版默认的ProjId和Mode
///
///
///
public bool UpdateDefaultProjIdModeEx(Account model)
{
var sql = "update sysAccount set DefaultProjIdEx=@DefaultProjIdEx,DefaultModeEx=@DefaultModeEx where Id=@Id;";
DynamicParameters paras = new DynamicParameters();
paras.Add("DefaultProjIdEx", model.DefaultProjIdEx);
paras.Add("DefaultModeEx", model.DefaultModeEx);
paras.Add("Id", model.Id);
return Conn.Execute(sql, paras) > 0;
}
///
/// 更新是否启用主标尺的标识(特定用户)
///
///
///
///
public bool UpdateRateGradeFlag(int id, bool RateGradeFlag)
{
var sql = "update sysAccount set RateGradeFlag=@RateGradeFlag where id=@id;";
DynamicParameters paras = new DynamicParameters();
paras.Add("RateGradeFlag", RateGradeFlag);
paras.Add("Id", id);
return Conn.Execute(sql, paras) > 0;
}
///
/// 企业监控邮件告警配置
///
///
///
///
///
///
public bool UpdateAlarmEmail(int id, bool AlarmEmailFlag, string AlarmEmail, string AlarmEmailGrade)
{
var sql = "update sysAccount set AlarmEmailFlag=@AlarmEmailFlag,AlarmEmail=@AlarmEmail,AlarmEmailGrade=@AlarmEmailGrade where id=@id;";
DynamicParameters paras = new DynamicParameters();
paras.Add("AlarmEmailFlag", AlarmEmailFlag);
paras.Add("AlarmEmail", AlarmEmail);
paras.Add("AlarmEmailGrade", AlarmEmailGrade);
paras.Add("Id", id);
return Conn.Execute(sql, paras) > 0;
}
///
/// 企业监控邮件告警配置
///
///
///
///
///
///
public bool UpdateAlarmWX(int id, bool AlarmWXFlag, string AlarmWXId, string AlarmWXGrade)
{
var sql = "update sysAccount set AlarmWXFlag=@AlarmWXFlag,AlarmWXId=@AlarmWXId,AlarmWXGrade=@AlarmWXGrade where id=@id;";
DynamicParameters paras = new DynamicParameters();
paras.Add("AlarmWXFlag", AlarmWXFlag);
paras.Add("AlarmWXId", AlarmWXId);
paras.Add("AlarmWXGrade", AlarmWXGrade);
paras.Add("Id", id);
return Conn.Execute(sql, paras) > 0;
}
///
/// 融资监控邮件告警配置
///
///
///
///
///
///
public bool UpdateAlarmRZEmail(int id, bool AlarmEmailRZFlag, string AlarmEmailRZ)
{
var sql = "update sysAccount set AlarmEmailRZFlag=@AlarmEmailRZFlag,AlarmEmailRZ=@AlarmEmailRZ where id=@id;";
DynamicParameters paras = new DynamicParameters();
paras.Add("AlarmEmailRZFlag", AlarmEmailRZFlag);
paras.Add("AlarmEmailRZ", AlarmEmailRZ);
paras.Add("Id", id);
return Conn.Execute(sql, paras) > 0;
}
///
/// 融资监控邮件告警配置
///
///
///
///
///
///
public bool UpdateAlarmRZWX(int id, bool AlarmWXRZFlag, string AlarmWXRZId)
{
var sql = "update sysAccount set AlarmWXRZFlag=@AlarmWXRZFlag,AlarmWXRZId=@AlarmWXRZId where id=@id;";
DynamicParameters paras = new DynamicParameters();
paras.Add("AlarmWXRZFlag", AlarmWXRZFlag);
paras.Add("AlarmWXRZId", AlarmWXRZId);
paras.Add("Id", id);
return Conn.Execute(sql, paras) > 0;
}
///
/// 更新最后登录时间和ip
///
///
///
public bool UpdateLastLogin(Account model)
{
var sql = "update sysAccount set LastLoginTime=@LastLoginTime,LastLoginIp=@LastLoginIp where Id=@Id;";
DynamicParameters paras = new DynamicParameters();
paras.Add("LastLoginTime", model.LastLoginTime);
paras.Add("LastLoginIp", model.LastLoginIp);
paras.Add("Id", model.Id);
return Conn.Execute(sql, paras) > 0;
}
///
/// 添加企业管理员后更新CompanyID
///
///
///
///
public bool UpdateCompanyIdbyId(int id, int CompanyId)
{
var sql = "update sysAccount set CompanyId=@CompanyId where Id=@Id;";
DynamicParameters paras = new DynamicParameters();
paras.Add("CompanyId", CompanyId);
paras.Add("Id", id);
return Conn.Execute(sql, paras) > 0;
}
///
/// 修改密码
///
/// 用户id
/// 密码(已加密)
///
public bool ChangePassword(int userid, string pwd)
{
var sql = "update sysAccount set password=@password where Id=@Id;";
DynamicParameters paras = new DynamicParameters();
paras.Add("password", pwd);
paras.Add("Id", userid);
return Conn.Execute(sql, paras) > 0;
}
#endregion
#region 删除部分
///
/// 删除当前单独账号
///
///
///
public bool DeleteAccountbyId(int id)
{
var sql = $"delete from sysAccount where id={id}";
return Conn.Execute(sql) > 0;
//var sql = "update sysAccount set IsDeleted=1 where Id=@Id;";
//DynamicParameters paras = new DynamicParameters();
//paras.Add("Id", id);
//return Conn.Execute(sql, paras) > 0;
}
///
/// 删除当前账号的所有子账号
///
///
///
public bool DeleteAccountbyCompanyId(int CompanyId)
{
var sql = $"delete from sysAccount where CompanyId={CompanyId}";
return Conn.Execute(sql) > 0;
//var sql = "update sysAccount set IsDeleted=1 where CompanyId=@CompanyId;";
//DynamicParameters paras = new DynamicParameters();
//paras.Add("CompanyId", CompanyId);
//return Conn.Execute(sql, paras) > 0;
}
#endregion
#region 数量统计
public int GetAccountNum(int CompanyId)
{
var sql = $"select (Count(CompanyId)-1) as CompanyIdNum from sysAccount where CompanyId={CompanyId} and IsDeleted=0";
return Conn.ExecuteScalar(sql);
}
#endregion
}
}