Exemple #1
0
        /// <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 = "写入日志失败,请联系管理员"
                });
            }
        }
Exemple #2
0
        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);
        }