/// <summary> /// 写入设备控制日志 /// </summary> /// <param name="Account">操作人</param> /// <param name="DeviceSn">设备序列号</param> /// <param name="req">设备操作日志</param> /// <returns>返回写入设备日志是否成功</returns> public async Task <BaseResponse> AddDeviceLogAsync(string Account, string DeviceSn, DeviceLogAddDto req) { try { var entity = _mapper.Map <DeviceLogModel>(req); entity.Create = Account;//注,创建者和操作者重复 entity.Account = Account; entity.DeviceSn = DeviceSn; await _dlr.AddAsync(entity); _log.LogInformation($"{Account}写入设备{DeviceSn}控制日志成功"); return(new HandleResponse <int> { Success = true, Message = "写入日志成功", Key = entity.Id }); } catch (Exception ex) { _log.LogError($"{Account}写入设备{DeviceSn}控制日志失败,失败原因{ex.Message}->{ex.StackTrace}->{ex.InnerException}"); return(new BaseResponse { Success = false, Message = "写入日志失败,请联系管理员" }); } }
public async Task <ActionResult <BaseResponse> > AddDeviceLogAsync(string GroupId, string DeviceSn, [FromBody] DeviceLogAddDto req) { //有用户控制权限的可以操作 string account = User.Claims.FirstOrDefault(a => a.Type == "Account").Value; var Roles = User.Claims.FirstOrDefault(a => a.Type == "Role").Value.ToString(); var Code = User.Claims.FirstOrDefault(a => a.Type == "Code").Value; var GId = User.Claims.FirstOrDefault(a => a.Type == "GroupId").Value; var IsAdmin = User.Claims.FirstOrDefault(a => a.Type == "IsAdmin").Value.ToLower() == "true" ? true : false; var device = await _ds.IsExistCheck(a => a.DeviceSn == DeviceSn); if (!device.IsExist) { return(new BaseResponse { Success = false, Message = "输入的设备编号不存在" }); } if (GId != GroupId) { if (!(IsAdmin && Code != _config["Group"])) { return(Unauthorized("用户没有权限")); } } else { if (!IsAdmin) { bool bAuth = await _rs.IsAuth(Roles, device.PathId, 1); if (!bAuth) { return(new BaseResponse { Success = false, Message = "用户没有权限操作设备" }); } } } var rm = await _dls.AddDeviceLogAsync(account, DeviceSn, req); return(rm); }