using MySqlX.XDevAPI.Common;
using OASystem.Domain.Dtos.System;
using OASystem.Domain.Entities.System;
using OASystem.Domain.ViewModels.System;
using OASystem.Infrastructure.Repositories.Login;
using OASystem.Infrastructure.Repositories.System;
namespace OASystem.API.Controllers
{
///
/// 系统设置
///
[Authorize]
[Route("api/[controller]/[action]")]
public class SystemController : ControllerBase
{
private readonly CompanyRepository _syscomRep;
private readonly DepartmentRepository _sysDepRep;
private readonly UsersRepository _userRep;
private readonly IMapper _mapper;
public SystemController( CompanyRepository syscom,DepartmentRepository sysDepRep, UsersRepository userRep,
IMapper mapper)
{
_syscomRep = syscom;
_sysDepRep = sysDepRep;
_userRep = userRep;
_mapper = mapper;
}
#region user 操作
[HttpGet]
[ProducesResponseType(typeof(LoginView), StatusCodes.Status200OK)]
public async Task GetUserList()
{
var userList = _userRep.GetUserList(_userRep);
if (userList.Result.Code != 0)
{
return Ok(JsonView(false, userList.Result.Msg));
}
return Ok(JsonView(userList.Result.Data));
}
#endregion
#region 企业操作
[HttpGet]
[ProducesResponseType(typeof(LoginView), StatusCodes.Status200OK)]
public async Task getCompanyList()
{
try
{
//var companyList = _sysDepRep.QueryDto(c=>c.IsDel!=null).ToList();
string sqlWhere = "select * from Sys_Company";
var companyList = _syscomRep.GetListBySqlWithNolock(sqlWhere);
List DataList = _mapper.Map>(companyList);
if (DataList.Count == 0)
{
return Ok(JsonView(false, "暂无数据!"));
}
return Ok(JsonView(DataList));
}
catch (Exception ex)
{
return Ok(JsonView(false, "程序错误!"));
throw;
}
}
#endregion
#region 部门操作
//[Authorize]
[HttpPost]
[ProducesResponseType(typeof(LoginView), StatusCodes.Status200OK)]
public async Task QueryDepartmentList(DepartmentDto dto)
{
try
{
var result = _sysDepRep.QueryDto(s => s.CompanyId == dto.CompanyId).ToList();
if (result.Count==0)
{
return Ok(JsonView(false, "暂无数据!"));
}
return Ok(JsonView(result));
}
catch (Exception ex)
{
return Ok(JsonView(false, "程序错误!"));
throw;
}
//return Ok(JsonView(0, "调用完成:", result));
}
#endregion
#region 用户操作
[HttpPost]
[ProducesResponseType(typeof(LoginView), StatusCodes.Status200OK)]
public async Task QueryUserList(UserDto dto)
{
try
{
string sqlWhere = string.Empty;
if (dto.CompanyId!=0)
{
sqlWhere += string.Format(@" And su.CompanyId={0}", dto.CompanyId);
}
if (dto.DepId != 0)
{
sqlWhere += string.Format(@" And su.DepId={0}", dto.DepId);
}
string userSqlWhere = string.Format(@"Select sjp.JobName,sd.DepName,sc.CompanyName,su.* From Sys_Users su
Inner Join Sys_Company sc On su.CompanyId = sc.Id
Inner Join Sys_Department sd On su.DepId = sd.Id
Inner Join Sys_JobPost sjp On su.JobPostId = sjp.Id where 1=1 {0}",sqlWhere);
var _userList = _userRep.GetListBySqlWithNolock(userSqlWhere);
List _userDataList = _mapper.Map>(_userList);//这一步,映射不上JobName,DepName,CompanyName,
if (_userDataList.Count==0)
{
return Ok(JsonView(false, "暂无数据!"));
}
for (int i = 0; i < _userDataList.Count; i++)
{
_userDataList[i].CompanyName = _userList[i].CompanyName;
_userDataList[i].DepName = _userList[i].DepName;
_userDataList[i].JobName = _userList[i].JobName;
}
return Ok(JsonView(_userDataList));
}
catch (Exception)
{
return Ok(JsonView(false, "程序错误!"));
throw;
}
}
#endregion
}
}