using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using MadRunFabric.Common;
using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.Logging;
using DistributionApi.IRepositories;
using Api.SignToken;
using System.Security.Claims;
using MadRunFabric.Model;
using Microsoft.Extensions.Configuration;
namespace DistributionApi.Controllers
{
///
/// 工单评价 - 省三院
///
[Authorize]
[ApiVersion("6.0")]
[Route("api/[controller]")]
[Produces("application/json")]
public class DistriWorkOrderEvaluateController : BaseController
{
private readonly ILogger _logger;
private readonly IConfiguration _configuration;
private readonly ISys_User_AccountRepository _sys_user_accountRepository;
private readonly ISignTokenService _signTokenService;
private readonly IDistri_Workorder_EvaluateRepository _distri_workorder_evaluaterepository;
private readonly IDistri_GoodsRepository _distri_goodsrepository;
public DistriWorkOrderEvaluateController(
ILogger logger,
IConfiguration configuration,
ISys_User_AccountRepository sys_user_accountRepository,
ISignTokenService signTokenService,
IDistri_Workorder_EvaluateRepository distri_workorder_evaluaterepository,
IDistri_GoodsRepository distri_goodsrepository
)
{
_logger = logger;
_configuration = configuration;
_sys_user_accountRepository = sys_user_accountRepository;
_signTokenService = signTokenService;
_distri_workorder_evaluaterepository = distri_workorder_evaluaterepository;
_distri_goodsrepository = distri_goodsrepository;
}
///
/// 获取工单评价列表分页 by page
///
///
///
///
///
///
///
[HttpGet("getlistbypage")]
public IActionResult GetListByPageAsync(string keyword, string projectid, string stime, string etime, int datetype = -1, int pageindex = 1, int pagesize = 10)
{
string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
//var userstr = _signTokenService.GetUserInfoAsync(usercode).Result;
//var userinfo = userstr.ToJObject()["data"].ToString().ToObject();
string allprojectrole = _configuration["allprojectrole"];
var userinfos = _sys_user_accountRepository.GetUserInfo(usercode, allprojectrole);
var userinfo = JsonHelper.JsonToEntity(userinfos.ToJson());
//获取当天、本周、本月、本年、累计时间
if (datetype != -1)
{
GetStartEndTime(datetype, out stime, out etime);
}
//获取数据
int recordCount = 0;
var result = _distri_workorder_evaluaterepository.GetListsByPage(keyword, projectid, userinfo, usercode, stime, etime, pageindex, pagesize, out recordCount);
var obj = new
{
rows = result.ToList(),
total = recordCount
};
return Success("获取成功", obj);
}
///
/// 获取当天、本周、本月、本年、累计时间
///
///
///
///
public void GetStartEndTime(int datetype, out string start, out string end)
{
start = string.Empty;
end = string.Empty;
var datenow = DateTime.Now;
var datestart = datenow;
var dateend = datenow;
switch (datetype)
{
case 0://当天
break;
case 1://本周
int n = (int)datenow.DayOfWeek == 0 ? 7 : (int)datenow.DayOfWeek;
datestart = datenow.AddDays(1 - n);//本周周一
dateend = datestart.AddDays(6);//本周周日
break;
case 2://本月
datestart = datenow.AddDays(1 - datenow.Day); //本月月初
dateend = datestart.AddMonths(1).AddDays(-1); //本月月末
break;
case 3://本年
datestart = new DateTime(datenow.Year, 1, 1); //本年年初
dateend = new DateTime(datenow.Year, 12, 31); //本年年末
break;
case 4://全部
break;
default:
break;
}
if (datetype != 4)
{
start = datestart.ToString("yyyy-MM-dd");
end = dateend.ToString("yyyy-MM-dd");
}
}
///
/// 获取工单评价详情
///
[HttpGet("getsingle")]
public IActionResult GetSingleAsync(string id)
{
var model = _distri_workorder_evaluaterepository.GetDetails(id);
return Success("获取成功", model);
}
///
/// 删除工单评价
///
///
///
[HttpPost("delete")]
public async Task DeleteAsync(string[] ids)
{
string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
string username = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name).Value;
//使用逻辑删除
var res = 0;
if (ids != null && ids.Length > 0)
{
foreach (var id in ids)
{
var model = await _distri_workorder_evaluaterepository.GetSingle(id);
model.isdelete = 1;
model.deleteby = usercode;
model.deletetime = DateTime.Now;
if (await _distri_workorder_evaluaterepository.UpdateOne(model))
{
res += 1;
}
}
if (res == ids.Length)
return Success("删除成功");
else if (res > 0 && res < ids.Length)
return Error("部分删除失败");
else
return Error("删除失败");
}
else
return Error("请选择要删除的记录");
}
#region 我的工单评价
///
/// 获取我的工单评价分页 by page
///
///
///
///
///
///
///
[HttpGet("getmylistbypage")]
public IActionResult GetMyListByPageAsync(string keyword, string projectid, string stime, string etime, int datetype = -1, int pageindex = 1, int pagesize = 10)
{
string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
//var userstr = _signTokenService.GetUserInfoAsync(usercode).Result;
//var userinfo = userstr.ToJObject()["data"].ToString().ToObject();
string allprojectrole = _configuration["allprojectrole"];
var userinfos = _sys_user_accountRepository.GetUserInfo(usercode, allprojectrole);
var userinfo = JsonHelper.JsonToEntity(userinfos.ToJson());
//获取当天、本周、本月、本年、累计时间
if (datetype != -1)
{
GetStartEndTime(datetype, out stime, out etime);
}
//获取数据
int recordCount = 0;
var result = _distri_workorder_evaluaterepository.GetMyListsByPage(keyword, projectid, userinfo, usercode, stime, etime, pageindex, pagesize, out recordCount);
var obj = new
{
rows = result.ToList(),
total = recordCount
};
return Success("获取成功11", obj);
}
#endregion
}
}