新增查房日志写入与查询接口
This commit is contained in:
@@ -564,6 +564,109 @@ namespace UI.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设备信息类
|
||||
/// </summary>
|
||||
public class EquipmentInfo
|
||||
{
|
||||
public string EquipmentStatus { get; set; } // 设备状态
|
||||
public string FaultDescription { get; set; } // 故障描述
|
||||
public string DevName { get; set; } // 设备名称
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 写入房间设备访问日志
|
||||
/// </summary>
|
||||
/// <param name="HotelID">酒店ID</param>
|
||||
/// <param name="RoomNumber">房号</param>
|
||||
/// <param name="EquipmentList">设备信息列表</param>
|
||||
/// <returns>返回操作结果</returns>
|
||||
[HttpPost]
|
||||
public ActionResult WriteRoomVisitLog(string HotelID, string RoomNumber, List<EquipmentInfo> EquipmentList)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(HotelID) || string.IsNullOrWhiteSpace(RoomNumber))
|
||||
{
|
||||
return Json(new { Status = 0, Message = "酒店ID和房号不能为空" }, JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
|
||||
if (EquipmentList == null || EquipmentList.Count == 0)
|
||||
{
|
||||
return Json(new { Status = 0, Message = "设备信息列表不能为空" }, JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
|
||||
// 创建日志列表
|
||||
var logList = new List<object>();
|
||||
string updateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
foreach (var equipment in EquipmentList)
|
||||
{
|
||||
logList.Add(new {
|
||||
HotelID = HotelID,
|
||||
RoomNumber = RoomNumber,
|
||||
EquipmentStatus = equipment.EquipmentStatus,
|
||||
FaultDescription = equipment.FaultDescription,
|
||||
UpdateDate = updateDate,
|
||||
DevName = equipment.DevName
|
||||
});
|
||||
}
|
||||
|
||||
// 批量写入数据库
|
||||
SqlSugarBase.RcuDb.Ado.ExecuteCommand("INSERT INTO tbl_roomvisitlogform (HotelID, RoomNumber, EquipmentStatus, FaultDescription, UpdateDate, DevName) VALUES (@HotelID, @RoomNumber, @EquipmentStatus, @FaultDescription, @UpdateDate, @DevName)", logList);
|
||||
|
||||
return Json(new { Status = 1, Message = "写入成功", Count = logList.Count }, JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error(ex, "WriteRoomVisitLog error");
|
||||
return Json(new { Status = -1, Message = "写入失败", Detail = ex.Message }, JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询房间设备访问日志
|
||||
/// </summary>
|
||||
/// <param name="HotelID">酒店ID</param>
|
||||
/// <param name="RoomNumber">房号</param>
|
||||
/// <param name="StartTime">开始时间(格式:yyyy-MM-dd HH:mm:ss)</param>
|
||||
/// <param name="EndTime">结束时间(格式:yyyy-MM-dd HH:mm:ss)</param>
|
||||
/// <returns>返回查询结果</returns>
|
||||
[HttpPost]
|
||||
public ActionResult QueryRoomVisitLog(string HotelID, string RoomNumber, string StartTime = null, string EndTime = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(HotelID) || string.IsNullOrWhiteSpace(RoomNumber))
|
||||
{
|
||||
return Json(new { Status = 0, Message = "酒店ID和房号不能为空" }, JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
|
||||
// 构建查询条件
|
||||
string whereClause = "WHERE HotelID = @HotelID AND RoomNumber = @RoomNumber";
|
||||
var parameters = new { HotelID, RoomNumber };
|
||||
|
||||
// 如果提供了开始时间和结束时间,则添加时间范围条件
|
||||
if (!string.IsNullOrWhiteSpace(StartTime) && !string.IsNullOrWhiteSpace(EndTime))
|
||||
{
|
||||
whereClause += " AND UpdateDate BETWEEN @StartTime AND @EndTime";
|
||||
parameters = new { HotelID, RoomNumber, StartTime, EndTime };
|
||||
}
|
||||
|
||||
// 构建完整的SQL查询语句
|
||||
string sql = $"SELECT ID, HotelID, RoomNumber, EquipmentStatus, FaultDescription, UpdateDate, DevName FROM tbl_roomvisitlogform {whereClause} ORDER BY UpdateDate DESC";
|
||||
|
||||
// 执行查询
|
||||
var result = SqlSugarBase.RcuDb.Ado.SqlQuery<dynamic>(sql, parameters);
|
||||
|
||||
return Json(new { Status = 1, Message = "查询成功", Data = result }, JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error(ex, "QueryRoomVisitLog error");
|
||||
return Json(new { Status = -1, Message = "查询失败", Detail = ex.Message }, JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
public class RCUDBData
|
||||
|
||||
Reference in New Issue
Block a user