Files
Web_AuthorityManagement_Mvc…/更新日志.md
2025-12-25 10:10:29 +08:00

5.2 KiB
Raw Blame History

系统更新日志

2025-12-24

新增接口

1. 房间设备访问日志写入接口

接口地址 /Upgrade/WriteRoomVisitLog

请求方式 POST

请求参数

参数名 类型 必填 描述
HotelID string 酒店ID
RoomNumber string 房号
EquipmentList List 设备信息列表

EquipmentInfo 数据结构

参数名 类型 必填 描述
EquipmentStatus string 设备状态
FaultDescription string 故障描述
DevName string 设备名称

返回结果

{
  "Status": 1, // 1成功0失败-1异常
  "Message": "写入成功", // 操作结果描述
  "Count": 2 // 成功插入的记录数
}

功能描述 该接口用于向数据库表 tbl_roomvisitlogform 写入房间设备访问日志支持批量写入多个设备的信息。UpdateDate 由服务器自动生成,格式为 yyyy-MM-dd HH:mm:ss

实现说明 / 变更

  • 修复说明:修复了 Controller 中原先使用匿名对象列表通过 Ado.ExecuteCommand 插入导致的不稳定/编译隐患,改为使用 SqlSugar 的 Insertable 批量插入 POCO写入到 tbl_roomvisitlogform返回实际插入的行数Count
  • 校验:当 HotelIDRoomNumber 为空,或 EquipmentList 为空时,接口返回 Status=0 并给出相应错误消息。
  • 时间字段:UpdateDate 由服务器生成,客户端无需提供。

使用示例

// 请求示例
fetch('/Upgrade/WriteRoomVisitLog', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  body: JSON.stringify({
    HotelID: '123',
    RoomNumber: '101',
    EquipmentList: [
      { EquipmentStatus: '正常', DevName: '灯光设备' },
      { EquipmentStatus: '故障', FaultDescription: '无法正常开关', DevName: '空调设备' }
    ]
  })
})
.then(response => response.json())
.then(data => {
  console.log(data);
  // 输出示例:{"Status":1,"Message":"写入成功","Count":2}
});

开发人员 系统开发团队

备注

  • 本次更新修复了导致编译或插入异常的实现方式,现已使用稳定的批量插入方案。
  • Count 字段表示成功写入数据库的行数。

2. 房间设备访问日志查询接口

接口地址 /Upgrade/QueryRoomVisitLog

请求方式 POST

请求参数

参数名 类型 必填 描述
HotelID string 酒店ID
RoomNumber string 房号
StartTime string 开始时间格式yyyy-MM-dd HH:mm:ss
EndTime string 结束时间格式yyyy-MM-dd HH:mm:ss

返回结果

{
  "Status": 1, // 1成功0失败-1异常
  "Message": "查询成功", // 操作结果描述
  "Data": [
    {
      "ID": 1,
      "HotelID": "123",
      "RoomNumber": "101",
      "EquipmentStatus": "正常",
      "FaultDescription": null,
      "UpdateDate": "2025-12-24 10:30:00",
      "DevName": "灯光设备"
    },
    {
      "ID": 2,
      "HotelID": "123",
      "RoomNumber": "101",
      "EquipmentStatus": "故障",
      "FaultDescription": "无法正常开关",
      "UpdateDate": "2025-12-24 10:31:00",
      "DevName": "空调设备"
    }
  ]
}

功能描述 该接口用于查询房间设备访问日志根据酒店ID、房号和时间范围进行筛选。若 StartTime/EndTime 未提供,则返回该房间全部记录;若提供则按时间过滤并按 UpdateDate 降序返回。

实现说明 / 变更

  • 修复说明解决了原实现中使用匿名类型在不同条件下重新赋值导致的编译错误CS0029改为使用可变参数集合并对时间参数做格式校验。
  • 时间参数行为:
    • StartTime / EndTime 必须为 yyyy-MM-dd HH:mm:ss 格式;格式错误时接口返回 Status=0 并带提示信息(例如:StartTime 格式错误,应为 yyyy-MM-dd HH:mm:ss)。
    • 支持单边过滤:仅传 StartTime 表示 UpdateDate >= StartTime;仅传 EndTime 表示 UpdateDate <= EndTime;同时传则表示 StartTime <= UpdateDate <= EndTime

使用示例

// 查询指定时间范围内的记录
fetch('/Upgrade/QueryRoomVisitLog', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  body: JSON.stringify({
    HotelID: '123',
    RoomNumber: '101',
    StartTime: '2025-12-24 00:00:00',
    EndTime: '2025-12-24 23:59:59'
  })
})
.then(response => response.json())
.then(data => {
  console.log(data);
  // 输出查询结果
});

// 查询所有记录
fetch('/Upgrade/QueryRoomVisitLog', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  body: JSON.stringify({
    HotelID: '123',
    RoomNumber: '101'
  })
})
.then(response => response.json())
.then(data => {
  console.log(data);
  // 输出查询结果
});

开发人员 系统开发团队

备注 该接口用于查询房间设备的访问和状态信息,支持按时间范围筛选,方便进行历史记录查询和分析。