using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using Api.SignToken;
using MadRunFabric.Common;
using MadRunFabric.Model;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
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 WorkGroupController : BaseController
{
private readonly IConfiguration _configuration;
private readonly ILogger _logger;
private readonly ISys_Work_GroupRepository _sys_work_groupRepository;
private readonly ISys_User_AccountRepository _sys_user_accountRepository;
public WorkGroupController(IConfiguration configuration, ILogger logger, ISys_Work_GroupRepository sys_work_groupRepository, ISys_User_AccountRepository sys_user_accountRepository)
{
_logger = logger;
_configuration = configuration;
_sys_work_groupRepository = sys_work_groupRepository;
_sys_user_accountRepository = sys_user_accountRepository;
}
///
/// 获取班别分页
///
///
///
///
///
///
///
[HttpGet("getlistbypage")]
public IActionResult GetListsByPageAsync(string projectid,string keyword, int pageindex = 1, int pagesize = 10)
{
//#region 条件信息
////根据条件查询集合
//var listApp = new List>();
//listApp.Add(Builders.Filter.Eq("isdelete", 0));
////模糊查询
//if (!string.IsNullOrEmpty(keyword))
// listApp.Add(Builders.Filter.Where(s => s.name.Contains(keyword) || s.code.Contains(keyword)));
//#endregion
//int recordCount = 0;
//var filter = Builders.Filter.And(listApp);
//var list = await _sys_work_groupRepository.GetByPage(filter, pageindex, pagesize);
//var redCount = await _sys_work_groupRepository.CountAsync(filter); //获取总数
//recordCount = int.Parse(redCount.ToString());
//var obj = new
//{
// rows = list,
// total = recordCount,
//};
//return Success("成功", obj);
string nowusercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
string allprojectrole = _configuration["allprojectrole"];
var userinfo = _sys_user_accountRepository.GetUserInfo(nowusercode, allprojectrole).ToJson().ToObject();
int recordCount = 0;
var result = _sys_work_groupRepository.GetListsByPage(projectid,keyword, userinfo, pageindex, pagesize, out recordCount);
var obj = new
{
rows = result,
total = recordCount
};
return Success("获取成功", obj);
}
///
/// 获取班别
///
/// 班别id
///
[HttpGet("getdetailes")]
public IActionResult GetDetailsAsync(string id)
{
if (string.IsNullOrEmpty(id))
return Error("参数错误");
var model = _sys_work_groupRepository.GetDetails(id);
return Success("获取成功!", model);
}
///
/// 添加班别
///
///
///
[HttpPost("add")]
public async Task AddAsync(WorkGroupInput input)
{
#region 验证判断
if (string.IsNullOrEmpty(input.name))
return Error("请输入名称");
if (string.IsNullOrEmpty(input.code))
return Error("请输入代码");
#endregion
var model = new Sys_Work_Group();
model.projectid = input.projectid;
model.name = input.name;
model.code = input.code;
model.starttime = input.starttime;
model.endtime = input.endtime;
model.remark = input.remark;
model.createby = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
model.createbyname = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name).Value;
model.createtime = DateTime.Now;
if (await _sys_work_groupRepository.Add(model))
{
return Success("添加成功");
}
else
{
return Error("添加失败");
}
}
///
/// 修改班别信息
///
[HttpPost("update")]
public async Task UpdateAsync(WorkGroupInput input)
{
#region 验证判断
if (string.IsNullOrEmpty(input.name))
return Error("请输入名称");
if (string.IsNullOrEmpty(input.code))
return Error("请输入代码");
#endregion
var model = await _sys_work_groupRepository.GetSingle(input.id);
if (model == null)
return Error("操作失败");
model.projectid = input.projectid;
model.name = input.name;
model.code = input.code;
model.starttime = input.starttime;
model.endtime = input.endtime;
model.remark = input.remark;
bool b = await _sys_work_groupRepository.Update(model);
if (b)
return Success("修改成功");
return Error("修改失败");
}
///
/// 删除班别信息 by ids
///
///
///
[HttpPost("delete")]
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_groupRepository.GetSingle(item);
//ml.isdelete = 1;
//ml.deletetime = DateTime.Now;
//ml.deleteby = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
//if (_sys_work_groupRepository.Update(ml).Result)
// res += 1;
if (await _sys_work_groupRepository.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("请选择要删除的记录");
}
}
}