using ce.autofac.extension;
using learun.iapplication;
using learun.util;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.IO;
using System.Threading.Tasks;
namespace learun.application
{
///
/// 版 本 EasyCode EC管理后台
/// Copyright (c) 2019-present EC管理有限公司
/// 创建人:tobin
/// 日 期:2019.09.12
/// 描 述:用户
///
public class UserBLL : UserIBLL, BLL
{
private readonly UserService userService = new UserService();
#region 获取数据
///
/// 获取用户信息通过账号
///
/// 用户账号
///
public Task GetEntityByAccount(string account)
{
return userService.GetEntityByAccount(account);
}
///
/// 获取用户信息
///
/// 主键
///
public Task GetEntity(string keyValue)
{
return userService.GetEntity(keyValue);
}
///
/// 获取登录者用户信息
///
///
public async Task GetEntity()
{
string account = ContextHelper.GetItem("account") as string;
if (string.IsNullOrEmpty(account))
{
return new UserEntity();
}
return await userService.GetEntityByAccount(account);
}
///
/// 用户列表(根据用户主键集合)
///
/// 用户主键集合主键
///
public Task> GetListByKeyValues(string keyValues)
{
return userService.GetListByKeyValues(keyValues);
}
///
/// 用户列表(根据公司主键,部门主键)
///
/// 公司主键
/// 部门主键
/// 查询关键词
///
public Task> GetList(string companyId, string departmentId, string keyword)
{
return userService.GetList(companyId, departmentId, keyword);
}
///
/// 获取分页数据
///
/// 公司主键
/// 部门主键
/// 分页参数
/// 查询关键词
///
public Task> GetPageList(string companyId, string departmentId, Pagination pagination, string keyword)
{
return userService.GetPageList(companyId, departmentId, pagination, keyword);
}
///
/// 用户列表,全部
///
/// 关键词
///
public Task> GetAllList(string keyword)
{
return userService.GetAllList(keyword);
}
///
/// 用户列表(导出Excel)
///
///
public async Task GetExportList()
{
//取出数据源
DataTable exportTable = await userService.GetExportList();
//设置导出格式
ExcelConfig excelconfig = new ExcelConfig();
excelconfig.Title = "测试用户导出";
excelconfig.TitleFont = "微软雅黑";
excelconfig.TitlePoint = 25;
excelconfig.FileName = "用户导出.xls";
excelconfig.IsAllSizeColumn = true;
//每一列的设置,没有设置的列信息,系统将按datatable中的列名导出
excelconfig.ColumnEntity = new List();
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_account", ExcelColumn = "账户" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_realname", ExcelColumn = "姓名" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_gender", ExcelColumn = "性别" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_birthday", ExcelColumn = "生日" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_mobile", ExcelColumn = "手机", Background = Color.Red });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_telephone", ExcelColumn = "电话", Background = Color.Red });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_wechat", ExcelColumn = "微信" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_organize", ExcelColumn = "公司" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_department", ExcelColumn = "部门" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_description", ExcelColumn = "说明" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_createdate", ExcelColumn = "创建日期" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_createusername", ExcelColumn = "创建人" });
//
return ExcelHelper.ExportMemoryStream(exportTable, excelconfig);
}
///
/// 获取超级管理员用户列表
///
///
public Task> GetAdminList()
{
return userService.GetAdminList();
}
#endregion 获取数据
#region 2
///
/// 用户列表(根据公司主键,部门主键)
///
/// 查询参数,json字串
///
public Task> GetList(JObject queryParam)
{
return userService.GetList(queryParam);
}
///
/// 获取分页数据
///
/// 分页参数
/// 查询参数,json字串
///
public Task> GetPageList(Pagination pagination, JObject queryParam)
{
return userService.GetPageList(pagination, queryParam);
}
#endregion 2
#region 提交数据
///
/// 虚拟删除
///
/// 主键
public async Task Delete(string keyValue)
{
await userService.Delete(keyValue);
}
///
/// 保存用户表单(新增、修改)
///
/// 主键值
/// 用户实体
///
public async Task SaveEntity(string keyValue, UserEntity userEntity)
{
await userService.SaveEntity(keyValue, userEntity);
}
///
/// 修改用户登录密码
///
/// 新密码(MD5 小写)
/// 旧密码(MD5 小写)
public async Task RevisePassword(string newPassword, string oldPassword)
{
var userInfo = await GetEntity();
string oldPasswordByEncrypt = Md5Helper.Encrypt(DESEncrypt.Encrypt(oldPassword, userInfo.F_Secretkey).ToLower(), 32).ToLower();
if (oldPasswordByEncrypt == userInfo.F_Password)
{
await userService.RevisePassword(userInfo.F_UserId, newPassword, userInfo);
}
else
{
return false;
}
return true;
}
///
/// 重置密码(000000)
///
/// 账号主键
public async Task ResetPassword(string keyValue)
{
var userInfo = await GetEntity();
string password = Md5Helper.Encrypt("000000", 32).ToLower();
await userService.RevisePassword(keyValue, password, userInfo);
}
///
/// 修改用户状态
///
/// 主键值
/// 状态:1-启动;0-禁用
public async Task UpdateState(string keyValue, int state)
{
var userInfo = await GetEntity();
await userService.UpdateState(keyValue, state, userInfo);
}
#endregion 提交数据
#region 扩展方法
///
/// 判断密码是否正确
///
/// 旧密码
/// 新密码
/// 密钥
///
public bool IsPasswordOk(string oldPassword, string newPassWord, string secretkey)
{
string dbPassword = Md5Helper.Encrypt(DESEncrypt.Encrypt(newPassWord, secretkey).ToLower(), 32).ToLower();
if (string.Equals(dbPassword, oldPassword))
{
return true;
}
return false;
}
#endregion 扩展方法
}
}