using Models; using Models.ModelItems; using Models.View; using Services.Cache; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using static Services.Cache.CacheHelp; using SqlSugar; namespace Services.Manager { public class HotelServer { //键值对存储酒店的最高就酒店组 如果存在就不需要查找 public static Dictionary keyValues = new Dictionary(); #region 检测组名 public static bool CheckGroupName(string Name, int ParentId) { var au = CacheHelp.cacheHoteldGroups.FirstOrDefault(x => x.ParentId == ParentId && x.Name == Name); if (au == null) return true; else return false; } #endregion #region 添加组名 public static int? AddGroupName(string Name, int ParentId, string Desc) { var au = CacheHelp.cacheHoteldGroups.FirstOrDefault(x => x.ParentId == ParentId && x.Name == Name); if (au != null) return null; HotelGroups groups = new HotelGroups() { Name = Name, ParentId = ParentId, Desc = Desc }; SqlSugarBase.Db.Insertable(groups).ExecuteCommand(); CacheHelp.Removesys(syskey.sysHoteldGroupsListKey); return groups.Id; } #endregion #region 检测酒店名 public static bool CheckHotelName(string Name, int ParentId) { var au = CacheHelp.cacheHotels.FirstOrDefault(x => x.GroupId == ParentId && x.Name == Name); if (au == null) return true; else return false; } #endregion #region 添加酒店名 public static int? AddHotel(string Name, int ParentId, string Desc) { var au = CacheHelp.cacheHotels.FirstOrDefault(x => x.GroupId == ParentId && x.Name == Name); if (au != null) return null; Hotels hotels = new Hotels() { Name = Name, GroupId = ParentId, Desc = Desc }; SqlSugarBase.Db.Insertable(hotels).ExecuteCommand(); CacheHelp.Removesys(syskey.sysHotelsListKey); return hotels.Id; } #endregion //返回酒店下面的人员信息 权限数量 #region 找查酒店用户信息 public static dynamic FindUserinfo() { dynamic resdata; var res = new List(); var data = UserInfoServer.GetUserInfo(null); foreach (var item in data) { foreach (var tump in item.HotelInfo) { res.Add(new { hotelId = tump.id, Id = item.Id, Uid = item.Uid, sum = tump.sum }); } } resdata = res.GroupBy(x => x.hotelId).ToList(); return resdata; } #endregion #region 找查 用户最高所属酒店组 或者 公司信息 public static dynamic FindUserinfoGs(View_UserInfo u) { try { if (u.Company != null) { return new { //0 宝来威 1 住好 2 卓豪 Id = u.Company, name = u.Company == 0?"宝来威":(u.Company == 1? "住好" : "卓豪") }; } //if(u.Company) var S = 2; if (u.IsImport > 0) { if (u.HotelGroupID > 0) S = FindRoot(u.HotelGroupID); else { if (u.HotelID > 1) S = FindRoot_(u.HotelID); } } S -= 2; if (S < 0) { throw new Exception("用户没有找到对应的公司"+u.Id.ToString()); } // S 2 "宝来威" 3 住好 UserInfo info = new UserInfo(); info.Id = u.Id; info.Company = S; var result = SqlSugarBase.Db.Updateable(info).UpdateColumns(it => new { it.Company }).ExecuteCommand(); Task.Run(() =>{ Cache.CacheHelp.Removesys(syskey.sysUserInfoListKey); }); return new { Id = S, name = S == 0 ? "宝来威" : (u.Company == 1 ? "住好" : "卓豪") }; } catch (Exception ex) { Logs.WriteTimingUDPLog("参入参数:"+JsonConvert.SerializeObject( u)); LogHelp.WriteExceptionLog(ex); return new { Id = 0, name = "宝来威" }; } } #endregion static dynamic FindRoot(int? group) { if (group == null) return 0; var groupinfo = cacheHoteldGroups.FirstOrDefault(x => x.Id == group); if (groupinfo == null) throw new Exception("group未找到!"); if (groupinfo.ParentId <= 1) return groupinfo.Id; return FindRoot(groupinfo.ParentId); } static dynamic FindRoot_(int? id) { if (id == null) return 0; var groupinfo = cacheHotels.First(x => x.Id == id); return FindRoot(groupinfo.GroupId); } } }