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);
|
||
}
|
||
}
|
||
} |