using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using MadRunFabric.Common;
using MadRunFabric.Model;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using MongoDB.Driver;
using SignTokenApi.IRepositories;
using SignTokenApi.Model.Input;
namespace SignTokenApi.Controllers
{
///
/// 用户班别
///
[Authorize]
[ApiVersion("6.0")]
[Produces("application/json")]
[Route("api/[controller]")]
public class UserGroupController : BaseController
{
private readonly ILogger _logger;
private readonly ISys_Work_UserGroupRepository _sys_work_usergroupRepository;
private readonly ISys_Work_GroupRepository _sys_work_groupRepository;
private readonly ISys_User_AccountRepository _sys_user_accountRepository;
public UserGroupController(ILogger logger, ISys_Work_UserGroupRepository sys_work_usergroupRepository,
ISys_Work_GroupRepository sys_work_groupRepository, ISys_User_AccountRepository sys_user_accountRepository)
{
_logger = logger;
_sys_work_usergroupRepository = sys_work_usergroupRepository;
_sys_work_groupRepository = sys_work_groupRepository;
_sys_user_accountRepository = sys_user_accountRepository;
}
///
/// 获取排班人员
///
///
///
[HttpGet("getuserlist")]
public IActionResult GetUserList(string projectid, string keyword)
{
var result = _sys_work_usergroupRepository.GetUserList(projectid, keyword);
return Success("获取成功", result);
}
///
/// 获取班别
///
///
///
[HttpGet("getgrouplist")]
public async Task GetGroupList(string projectid, string keyword)
{
#region 条件信息
////排序字段
var sort = Builders.Sort.Ascending("sort");
//根据条件查询集合
var listApp = new List>();
listApp.Add(Builders.Filter.Eq("isdelete", 0));
if (!string.IsNullOrEmpty(projectid))
listApp.Add(Builders.Filter.Where(s => s.projectid == projectid));
//模糊查询
if (!string.IsNullOrEmpty(keyword))
listApp.Add(Builders.Filter.Where(s => s.name.Contains(keyword) || s.code.Contains(keyword)));
#endregion
var filter = Builders.Filter.And(listApp);
var list = await _sys_work_groupRepository.Get(filter);
return Success("获取成功", list);
}
///
/// 获取排班详情
///
///
///
///
///
///
///
[HttpGet("getusergrouplist")]
public IActionResult GetUserGroupList(string projectid, string startdate, string enddate, string usercode, string groupcode)
{
var result = _sys_work_usergroupRepository.GetUserGroupList(projectid,startdate, enddate, usercode, groupcode);
return Success("成功", result);
}
///
/// 获取用户排班详情
///
///
///
///
[HttpGet("getusergroupinfo")]
public IActionResult GetUserGroupInfo(string usercode, string date)
{
var result = _sys_work_usergroupRepository.GetUserGroupInfo(usercode, date);
return Success("成功", result);
}
///
/// 获取用户班别
///
/// 用户班别id
///
[HttpGet("getsingle")]
public async Task GetSingleAsync(string usercode, string date)
{
var model = await _sys_work_usergroupRepository.GetSingle(p => p.usercode == usercode && p.date == date && p.isdelete == 0);
if (model != null)
return Success("获取成功!", model);
return Error("获取失败");
}
///
/// 获取用户班别
///
/// 用户班别id
///
[HttpGet("getdetailes")]
public async Task GetDetailsAsync(string id)
{
if (string.IsNullOrEmpty(id))
return Error("参数错误");
var model = await _sys_work_usergroupRepository.GetSingle(id);
if (model == null)
{
return Error("获取失败");
}
return Success("获取成功!", model);
}
///
/// 设置用户班别
///
///
///
[HttpPost("setusergroup")]
public async Task SetUserGroupAsync(string usercode, string groupcode, string date)
{
#region 验证判断
if (string.IsNullOrEmpty(usercode))
return Error("用户不能为空");
if (string.IsNullOrEmpty(date))
return Error("日期不能为空");
#endregion
var model = await _sys_work_usergroupRepository.GetSingle(p => p.usercode == usercode && p.date == date && p.isdelete == 0);
if (model != null)
{
model.usercode = usercode;
model.groupcode = groupcode;
model.date = date;
if (await _sys_work_usergroupRepository.Update(model))
return Success("设置成功");
return Error("设置失败");
}
else
{
model = new Sys_Work_UserGroup();
model.usercode = usercode;
model.groupcode = groupcode;
model.date = date;
model.isdelete = 0;
model.createtime = DateTime.Now;
model.createby = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
model.createbyname = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name).Value;
if (await _sys_work_usergroupRepository.Add(model))
return Success("设置成功");
return Error("设置失败");
}
}
///
/// 删除用户班别信息 by ids
///
///
///
[HttpPost("delete")]
public async Task RemoveAsync(string usercode, string date)
{
var ml = await _sys_work_usergroupRepository.GetSingle(p => p.usercode == usercode && p.date == date && p.isdelete == 0);
//ml.isdelete = 1;
//ml.deletetime = DateTime.Now;
//ml.deleteby = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
//if (await _sys_work_usergroupRepository.Update(ml))
if (await _sys_work_usergroupRepository.Remove(ml.id))
return Success("删除成功");
return Error("删除失败");
}
///
/// 删除用户班别信息 by ids
///
///
///
[HttpPost("deletes")]
public async Task DeleteAsync(string[] ids)
{
var res = 0;
if (ids != null && ids.Length > 0)
{
foreach (var item in ids)
{
//var ml = await _sys_work_usergroupRepository.GetSingle(item);
//ml.isdelete = 1;
//ml.deletetime = DateTime.Now;
//ml.deleteby = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
//if (await _sys_work_usergroupRepository.Update(ml))
// res += 1;
if (await _sys_work_usergroupRepository.Remove(item))
res += 1;
}
if (res == ids.Length)
return Success("删除成功");
else if (res > 0 && res < ids.Length)
return Error("部分删除失败,请查看后重新操作");
else
return Error("删除失败,请查看后重新操作");
}
else
return Error("请选择要删除的记录");
}
}
}