Files
Web_AuthorityManagement_Mvc…/Services/Manager/HotelServer.cs

174 lines
5.8 KiB
C#
Raw Normal View History

2025-11-20 09:50:21 +08:00
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<int, int> keyValues = new Dictionary<int, int>();
#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<dynamic>();
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);
}
}
}