226 lines
8.4 KiB
C#
226 lines
8.4 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Data;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Web;
|
|||
|
|
using System.Web.Mvc;
|
|||
|
|
using Face.Domain.Entities;
|
|||
|
|
using Face.Services.Cache;
|
|||
|
|
using Face.Web.Areas.App.Models;
|
|||
|
|
using Face.Services.DBUtility.Custom;
|
|||
|
|
using Face.Domain.Application;
|
|||
|
|
using PagedList;
|
|||
|
|
using SqlSugar;
|
|||
|
|
using Face.Domain.ViewModels;
|
|||
|
|
using Face.Services.DBUtility.Common;
|
|||
|
|
using Face.Services.Manager;
|
|||
|
|
using static Face.Web.Areas.App.Controllers.FaceController;
|
|||
|
|
using static Face.Web.Areas.App.Controllers.InterfaceController;
|
|||
|
|
using static Face.Web.Areas.App.Models.Roominfo;
|
|||
|
|
|
|||
|
|
namespace Face.Web.Areas.App.Controllers
|
|||
|
|
{
|
|||
|
|
public class RoomController : Controller
|
|||
|
|
{
|
|||
|
|
public ActionResult TestRoomall(string Sn)
|
|||
|
|
{
|
|||
|
|
return View();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[HttpPost]
|
|||
|
|
public ActionResult InquireRoomall(Condition data)
|
|||
|
|
{
|
|||
|
|
List<int> lit = (List<int>)Session["list"];
|
|||
|
|
List<AuthItem> authItem = (List<AuthItem>)Session["authItems"];
|
|||
|
|
|
|||
|
|
string strSql = "";
|
|||
|
|
string strCntSql = "";
|
|||
|
|
//string selectSql = "select r.ROOM_ID as InnerRoomId, h.Id as HotelId, h.Name as HotelName, h.Code as ExternalHotelCode, r.ROOM_NUMBER as RoomNumber,d.* ";//d.bindingStatus, d.SerialNo, d.Status, d.maintainStatus ";
|
|||
|
|
string selectSql = "select r.ROOM_OLD_ID as InnerRoomId, h.Id as HotelId, h.Name as HotelName, h.Code as ExternalHotelCode, r.ROOM_NUMBER as RoomNumber, r.RoomStatusID as RoomCheckInStatus, ";
|
|||
|
|
selectSql += "d.Facelid, d.SerialNo, d.CreatedDate, d.HotelCode, d.RoomId, d.Factory, d.Status, d.bindingDate, d.bindingStatus, d.faceIp, d.faceAddress, d.maintainStatus ";
|
|||
|
|
string fromSql = "";
|
|||
|
|
string orderSql = "";
|
|||
|
|
string limitSql = "";
|
|||
|
|
string cond1Sql = "";
|
|||
|
|
string cond2Sql = "";
|
|||
|
|
string cond3Sql = "";
|
|||
|
|
string tbl1Sql = "";
|
|||
|
|
for (int i = 0; i < lit.Count; i++)
|
|||
|
|
{
|
|||
|
|
cond1Sql += (" Id=" + lit[i] + " or");
|
|||
|
|
}
|
|||
|
|
cond1Sql = cond1Sql.Substring(0, cond1Sql.Length - 2);
|
|||
|
|
if (authItem[0].AuthorityId == 3)
|
|||
|
|
{
|
|||
|
|
cond1Sql += " or Id=0 or Id is null ";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//酒店id判断
|
|||
|
|
Session["defaultHotelId"] = data.HotelID;
|
|||
|
|
HttpCookie aCookie = new HttpCookie("lastHotelId");
|
|||
|
|
aCookie.Value = Convert.ToString(data.HotelID);
|
|||
|
|
aCookie.Expires = DateTime.Now.AddDays(7);
|
|||
|
|
Response.Cookies.Add(aCookie);
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (data.HotelID == -1)
|
|||
|
|
{
|
|||
|
|
cond2Sql += " and (Id=0 or Id is null) ";
|
|||
|
|
}
|
|||
|
|
else if (data.HotelID != 0)
|
|||
|
|
{
|
|||
|
|
cond2Sql += " and Id=" + data.HotelID;
|
|||
|
|
}
|
|||
|
|
tbl1Sql = "(select * from authoritydb.hotels where 0=0 and (" + cond1Sql + ") " + cond2Sql + " ) h ";
|
|||
|
|
fromSql = "from " + tbl1Sql + "join blv_rcu_db.tbl_room_basic_info r on h.Id = r.HOTEL_OLD_ID ";
|
|||
|
|
fromSql += "left join face.devicemanage d on r.ROOM_OLD_ID=d.RoomId ";
|
|||
|
|
//-1代表全部房间
|
|||
|
|
if (data.Notbing != -1)
|
|||
|
|
{
|
|||
|
|
if(data.Notbing == 0)
|
|||
|
|
cond3Sql += "where d.bindingStatus=" + data.Notbing + " or d.bindingStatus is null "; //0 or null both means no binding
|
|||
|
|
else
|
|||
|
|
cond3Sql += "where d.bindingStatus=" + data.Notbing + " ";
|
|||
|
|
}
|
|||
|
|
if (data.FaceName != "" && data.FaceName != null)
|
|||
|
|
{
|
|||
|
|
if (cond3Sql.IndexOf("where") < 0)
|
|||
|
|
cond3Sql += "where ";
|
|||
|
|
else
|
|||
|
|
cond3Sql += "and ";
|
|||
|
|
cond3Sql += "d.SerialNo like '%" + data.FaceName + "%' ";
|
|||
|
|
}
|
|||
|
|
orderSql = "order by h.Name, r.ROOM_NUMBER ";
|
|||
|
|
limitSql = "LIMIT " + (data.dataMin) + ",8; ";
|
|||
|
|
|
|||
|
|
strSql = selectSql + fromSql + cond3Sql + orderSql + limitSql;
|
|||
|
|
List<InfoRoomall> allRooms = new DALHelperCustom<InfoRoomall>("DeviceManage").SqlQueryGetList(strSql);
|
|||
|
|
|
|||
|
|
strCntSql = "select COUNT(*) " + fromSql + cond3Sql + orderSql;
|
|||
|
|
DataSet dsCnt = Fasce.Services.DBUtility.Custom.DbHelperMySqlCustom.Query(strCntSql);
|
|||
|
|
int cnt = 0;
|
|||
|
|
int cntmode = 0;
|
|||
|
|
if (dsCnt != null && dsCnt.Tables.Count > 0)
|
|||
|
|
{
|
|||
|
|
DataRow dr = dsCnt.Tables[0].Rows[0];
|
|||
|
|
cnt = Convert.ToInt32(dr[0]);
|
|||
|
|
cntmode = cnt % 8;
|
|||
|
|
}
|
|||
|
|
if (allRooms != null && cnt != 0)
|
|||
|
|
{
|
|||
|
|
ViewBag.count = cnt;
|
|||
|
|
ViewBag.modcount = cntmode;
|
|||
|
|
ViewBag.curpagenum = data.Pages;
|
|||
|
|
ViewBag.allpage = cnt / 8 + (cntmode == 0 ? 0 : 1);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
allRooms = null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
DateTime dt = Convert.ToDateTime("2000-01-01");
|
|||
|
|
var stillcheckin = SqlSugarBase.GesmartDb().Queryable<CheckInInfo>().Where(s => s.checkOutTime == dt).ToList();
|
|||
|
|
ViewData["sungo"] = stillcheckin;
|
|||
|
|
|
|||
|
|
return PartialView("InquireRoomall", allRooms);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
[HttpPost]
|
|||
|
|
public ActionResult BindFaceDeviceToRoom(obje obje)//房间绑定人脸机操作
|
|||
|
|
{
|
|||
|
|
ReturnResult result = new ReturnResult();
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
if (SqlOperationsData.reviseRommFace(obje.hotel, obje.romm, obje.faceNo) != 0)
|
|||
|
|
{
|
|||
|
|
FaceBinding binding = new FaceBinding
|
|||
|
|
{
|
|||
|
|
bindingDate = DateTime.Now,
|
|||
|
|
HotelCode = int.Parse(obje.hotel),
|
|||
|
|
OperatorType = true,
|
|||
|
|
RoomId = obje.romm,
|
|||
|
|
SerialNo = obje.faceNo,
|
|||
|
|
Operator = Session["username"].ToString()
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
if (SqlOperationsData.bindingState(binding) != 0)
|
|||
|
|
{
|
|||
|
|
result.Status = 200;
|
|||
|
|
result.Message = "为房间添加人脸机成功";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
result.Status = 500;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
LogHelp.WriteExceptionLog(ex, Session["username"].ToString());
|
|||
|
|
result.Status = 100;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[HttpPost]
|
|||
|
|
public ActionResult RemoveFaceDeviceFromRoom(obje hotelno)
|
|||
|
|
{
|
|||
|
|
ReturnResult result = new ReturnResult();
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
if (SqlOperationsData.unbundleoperateRoom(hotelno.faceNo) != 0)
|
|||
|
|
{
|
|||
|
|
FaceBinding binding = new FaceBinding
|
|||
|
|
{
|
|||
|
|
bindingDate = DateTime.Now,
|
|||
|
|
HotelCode = int.Parse(hotelno.hotel),
|
|||
|
|
OperatorType = false,
|
|||
|
|
RoomId = hotelno.romm,
|
|||
|
|
SerialNo = hotelno.faceNo,
|
|||
|
|
Operator = Session["username"].ToString()
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
if (SqlOperationsData.bindingState(binding) != 0)
|
|||
|
|
result.Status = 200;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
result.Status = 500;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
LogHelp.WriteExceptionLog(ex, Session["username"].ToString());
|
|||
|
|
result.Status = 100;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
return Json(result);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
public class TwoRetDevList
|
|||
|
|
{
|
|||
|
|
public List<DeviceManage> allFreeOfHotel = new List<DeviceManage>();
|
|||
|
|
public List<DeviceManage> allFree = new List<DeviceManage>();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
[HttpGet]
|
|||
|
|
public JsonResult GetFaceDeviceOfHotel(int hotelId)//根据酒店id有人脸机的房间下拉框
|
|||
|
|
{
|
|||
|
|
TwoRetDevList retObj = new TwoRetDevList();
|
|||
|
|
using (SqlSugarClient db = SqlSugarBase.GesmartDb())
|
|||
|
|
{
|
|||
|
|
var allfree = db.Queryable<DeviceManage>().Where(x => x.bindingStatus == false).Select(x => x).ToList();
|
|||
|
|
var allfreeofhotel = allfree.Where(y => Convert.ToInt32(y.HotelCode) == hotelId).ToList();
|
|||
|
|
retObj.allFree = allfree;
|
|||
|
|
retObj.allFreeOfHotel = allfreeofhotel;
|
|||
|
|
}
|
|||
|
|
return Json(retObj, JsonRequestBehavior.AllowGet);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|