Files
2025-11-20 09:51:24 +08:00

174 lines
5.8 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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);
}
}
}