2025-11-20 09:50:21 +08:00
|
|
|
|
using Models;
|
|
|
|
|
|
using Models.ModelItems;
|
|
|
|
|
|
using Services.Api;
|
|
|
|
|
|
using Services.Manager;
|
|
|
|
|
|
using Services.Tool;
|
|
|
|
|
|
using StackExchange.Redis;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Security.Cryptography;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
using System.Web;
|
|
|
|
|
|
using System.Web.Mvc;
|
|
|
|
|
|
using System.Web.UI.WebControls;
|
|
|
|
|
|
using static Services.Tool.HttpRequestHelp;
|
|
|
|
|
|
using static System.Runtime.CompilerServices.RuntimeHelpers;
|
|
|
|
|
|
|
|
|
|
|
|
namespace UI.Controllers
|
|
|
|
|
|
{
|
|
|
|
|
|
//给第三方调用的Api
|
|
|
|
|
|
public class OtherApiController : Controller
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
[Route("OTApi/SynAuthority")]
|
|
|
|
|
|
public ActionResult Synchronization()
|
|
|
|
|
|
{
|
|
|
|
|
|
ApiController api = new ApiController();
|
|
|
|
|
|
return api.Clear2();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 登录
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="Uid"></param>
|
|
|
|
|
|
/// <param name="Pwd"></param>
|
|
|
|
|
|
/// <param name="appid"></param>
|
|
|
|
|
|
/// <param name="Ip"></param>
|
|
|
|
|
|
/// <param name="moreLogin">是否多点登录</param>
|
|
|
|
|
|
/// <param name="UserAgent"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
[Route("OTApi/Login")]
|
|
|
|
|
|
public ActionResult Index(string Uid, string Pwd, int appid, string Ip = "", bool moreLogin = false, string UserAgent = "")
|
|
|
|
|
|
{
|
|
|
|
|
|
var resdata = new ReturnResult<dynamic>();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
Ip = Ip == "" ? IPHelper.GetIP() : Ip;
|
|
|
|
|
|
var res = OTApi.GetUserLoginByApi(Uid, Pwd, appid);
|
|
|
|
|
|
DbLog log = new DbLog() { Uid = Uid, Ip = Ip, Client = UserAgent == "" ? HttpContext.Request.UserAgent : UserAgent };
|
|
|
|
|
|
var Message = res.Message;
|
|
|
|
|
|
Task.Run(() =>
|
|
|
|
|
|
{
|
|
|
|
|
|
Data loc = HttpRequestHelp.GetIp($@"https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query={log.Ip}&co=&resource_id=6006&oe=utf8");
|
|
|
|
|
|
if (loc != null && loc.status == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (loc.data.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
log.location = loc.data[0].location;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
DbLogServer.WriteDbLog($"{Uid}请求应用 {Message[3]}({appid}) 授权" + (res.Status == 200 ? "请求成功~" : "请求失败~"), 0, log);
|
|
|
|
|
|
if (res.Status == 200)
|
|
|
|
|
|
DBlog.WirtDB(Message[2], Message[0], appid);
|
|
|
|
|
|
res.Message = "请求成功~";
|
|
|
|
|
|
});
|
|
|
|
|
|
resdata.Status = res.Status;
|
|
|
|
|
|
if (res.Status == 200)
|
|
|
|
|
|
{
|
|
|
|
|
|
var token = (Uid + Pwd + DateTime.Now);
|
|
|
|
|
|
var md5 = new MD5CryptoServiceProvider();
|
|
|
|
|
|
token = (BitConverter.ToString(md5.ComputeHash(Encoding.Default.GetBytes(token)), 4, 8)).Replace("-", "");
|
|
|
|
|
|
if (moreLogin == true)
|
|
|
|
|
|
{
|
2025-12-22 17:47:19 +08:00
|
|
|
|
StackChangeRedisHelper.StringSet(token, new UserInfo() { Pwd = Pwd, Uid = Uid }, TimeSpan.FromMinutes(20));
|
2025-11-20 09:50:21 +08:00
|
|
|
|
}
|
|
|
|
|
|
resdata.Data = new
|
|
|
|
|
|
{
|
|
|
|
|
|
Userinfo = new
|
|
|
|
|
|
{
|
|
|
|
|
|
Uid = Uid,
|
|
|
|
|
|
HeadImg = Message[1]
|
|
|
|
|
|
},
|
|
|
|
|
|
HotelData = res.Data,
|
|
|
|
|
|
Token = moreLogin ? token : string.Empty
|
|
|
|
|
|
};
|
|
|
|
|
|
resdata.Message = "请求成功~";
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
resdata.Message = res.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
resdata.Data = "";
|
|
|
|
|
|
resdata.Status = 500;
|
|
|
|
|
|
resdata.Message = ex.Message;
|
|
|
|
|
|
LogHelp.WriteExceptionLog(ex);
|
|
|
|
|
|
}
|
|
|
|
|
|
return Json(resdata);
|
|
|
|
|
|
}
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
[Route("OTApi/Apps")]
|
|
|
|
|
|
public ActionResult Apps(string Uid, int appid = 0, string Ip = "", string UserAgent = "")
|
|
|
|
|
|
{
|
|
|
|
|
|
var resdata = new ReturnResult<dynamic>();
|
|
|
|
|
|
var app = new ApplicationDomain() { AppName = "全部", Id = appid };
|
|
|
|
|
|
if (appid != 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
app = Services.Cache.CacheHelp.cacheSysApp.FirstOrDefault(x => x.Id == appid);
|
|
|
|
|
|
}
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
DbLog log = new DbLog() { Uid = Uid, Ip = Ip == "" ? IPHelper.GetIP() : Ip, Client = UserAgent == "" ? HttpContext.Request.UserAgent : UserAgent };
|
|
|
|
|
|
var user = Services.Cache.CacheHelp.cacheSysUserInfo.FirstOrDefault(x => x.Uid == Uid);
|
|
|
|
|
|
if (user == null || app == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
new ApplicationDomain() { AppName = "全部", Id = appid };
|
|
|
|
|
|
resdata.Status = 100;
|
|
|
|
|
|
resdata.Message = "用户或app不存在~";
|
|
|
|
|
|
resdata.Data = string.Empty;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
//返回 查询的app 正常的权限
|
|
|
|
|
|
resdata.Data = AppServer.GetAppInfo(appid, 0, 1, false);
|
|
|
|
|
|
resdata.Status = 200;
|
|
|
|
|
|
}
|
|
|
|
|
|
Task.Run(() =>
|
|
|
|
|
|
{
|
|
|
|
|
|
Data loc = HttpRequestHelp.GetIp($@"https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query={log.Ip}&co=&resource_id=6006&oe=utf8");
|
|
|
|
|
|
if (loc.status == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (loc.data.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
log.location = loc.data[0].location;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
DbLogServer.WriteDbLog($"{Uid}查询 {app.AppName} App信息 {(resdata.Status == 200 ? "成功" : "失败")}", 0, log);
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
resdata.Status = 500;
|
|
|
|
|
|
resdata.Data = "";
|
|
|
|
|
|
resdata.Message = ex.Message;
|
|
|
|
|
|
LogHelp.WriteExceptionLog(ex);
|
|
|
|
|
|
}
|
|
|
|
|
|
return Json(resdata);
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 全局登录 退出登录 通过链接点入无法登录
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="Token"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
[Route("OTApi/OutLogin")]
|
|
|
|
|
|
public ActionResult OutLogin(string Token, string Ip, bool IsNew = false)
|
|
|
|
|
|
{
|
|
|
|
|
|
var resdata = new ReturnResult<dynamic>();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
2025-12-22 17:47:19 +08:00
|
|
|
|
var userinfo = StackChangeRedisHelper.StringGet<UserInfo>(Token);
|
2025-11-20 09:50:21 +08:00
|
|
|
|
if (IsNew)
|
|
|
|
|
|
{
|
|
|
|
|
|
Ip = Ip == "" ? IPHelper.GetIP() : Ip;
|
|
|
|
|
|
if (userinfo == default(UserInfo))
|
|
|
|
|
|
{
|
|
|
|
|
|
resdata.Status = 100;
|
|
|
|
|
|
resdata.Data = "";
|
|
|
|
|
|
return Json(resdata);
|
|
|
|
|
|
}
|
|
|
|
|
|
var token = (userinfo.Uid + userinfo.Pwd + DateTime.Now);
|
|
|
|
|
|
var md5 = new MD5CryptoServiceProvider();
|
|
|
|
|
|
token = (BitConverter.ToString(md5.ComputeHash(Encoding.Default.GetBytes(token)), 4, 8)).Replace("-", "");
|
2025-12-22 17:47:19 +08:00
|
|
|
|
StackChangeRedisHelper.StringSet(token, userinfo);
|
2025-11-20 09:50:21 +08:00
|
|
|
|
resdata.Data = new { Token = token };
|
|
|
|
|
|
resdata.Status = 200;
|
|
|
|
|
|
}
|
2025-12-22 17:47:19 +08:00
|
|
|
|
StackChangeRedisHelper.StringSet(Token, userinfo, TimeSpan.FromSeconds(10));
|
2025-11-20 09:50:21 +08:00
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
resdata.Data = "";
|
|
|
|
|
|
resdata.Status = 500;
|
|
|
|
|
|
resdata.Message = ex.Message;
|
|
|
|
|
|
LogHelp.WriteExceptionLog(ex);
|
|
|
|
|
|
}
|
|
|
|
|
|
return Json(resdata);
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 全局登录 登录 通过链接点入登录 返回用户信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="Token"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
[Route("OTApi/MoreLogin")]
|
|
|
|
|
|
public ActionResult MoreLogin(string Token, int appid, string Ip = "", string UserAgent = "", bool IsData = true)
|
|
|
|
|
|
{
|
|
|
|
|
|
var resdata = new ReturnResult<dynamic>();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
Logs.WriteTimingUDPLog($"传入token {Token}");
|
|
|
|
|
|
Ip = Ip == "" ? IPHelper.GetIP() : Ip;
|
2025-12-22 17:47:19 +08:00
|
|
|
|
var userinfo = StackChangeRedisHelper.StringGet<UserInfo>(Token);
|
|
|
|
|
|
StackChangeRedisHelper.RemoveKey(Token);
|
2025-11-20 09:50:21 +08:00
|
|
|
|
if (userinfo == default(UserInfo))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (IsData == false)
|
|
|
|
|
|
{
|
|
|
|
|
|
resdata.Status = 200;
|
|
|
|
|
|
resdata.Message = "清除成功~";
|
|
|
|
|
|
return Json(resdata);
|
|
|
|
|
|
}
|
|
|
|
|
|
resdata.Status = 100;
|
|
|
|
|
|
resdata.Message = "无效凭证~";
|
|
|
|
|
|
return Json(resdata);
|
|
|
|
|
|
}
|
|
|
|
|
|
var res = OTApi.GetUserLoginByApi(userinfo.Uid, userinfo.Pwd, appid);
|
|
|
|
|
|
DbLog log = new DbLog() { Uid = userinfo.Uid, Ip = Ip == "" ? IPHelper.GetIP() : Ip, Client = UserAgent == "" ? HttpContext.Request.UserAgent : UserAgent };
|
|
|
|
|
|
var Message = res.Message;
|
|
|
|
|
|
Task.Run(() =>
|
|
|
|
|
|
{
|
|
|
|
|
|
Data loc = HttpRequestHelp.GetIp($@"https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query={log.Ip}&co=&resource_id=6006&oe=utf8");
|
|
|
|
|
|
if (loc.status == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (loc.data.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
log.location = loc.data[0].location;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
DbLogServer.WriteDbLog($"{userinfo.Uid}请求应用 {Message[3]}({appid}) 授权" + (res.Status == 200 ? "请求成功~" : "请求失败~"), 0, log);
|
|
|
|
|
|
if (res.Status == 200)
|
|
|
|
|
|
DBlog.WirtDB(Message[2], Message[0], appid);
|
|
|
|
|
|
res.Message = "请求成功~";
|
|
|
|
|
|
//AppServer.AddDown(appid, 1);
|
|
|
|
|
|
});
|
|
|
|
|
|
resdata.Status = res.Status;
|
|
|
|
|
|
if (res.Status == 200)
|
|
|
|
|
|
{
|
|
|
|
|
|
resdata.Data = new
|
|
|
|
|
|
{
|
|
|
|
|
|
Userinfo = new
|
|
|
|
|
|
{
|
|
|
|
|
|
Uid = userinfo.Uid,
|
|
|
|
|
|
HeadImg = Message[1]
|
|
|
|
|
|
},
|
|
|
|
|
|
HotelData = res.Data
|
|
|
|
|
|
};
|
|
|
|
|
|
resdata.Message = "请求成功~";
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
resdata.Message = res.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
resdata.Data = null;
|
|
|
|
|
|
resdata.Status = 500;
|
|
|
|
|
|
resdata.Message = ex.Message;
|
|
|
|
|
|
LogHelp.WriteExceptionLog(ex);
|
|
|
|
|
|
}
|
|
|
|
|
|
return Json(resdata);
|
|
|
|
|
|
}
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
#region 下载量统计
|
|
|
|
|
|
[Route("OTApi/AppDownSum")]
|
|
|
|
|
|
public ActionResult DownSum(int appid = 0, string Token = "", string Ip = "", string UserAgent = "", int sum = 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
var resdata = new ReturnResult<dynamic>();
|
|
|
|
|
|
var app = new ApplicationDomain() { AppName = "全部", Id = appid };
|
|
|
|
|
|
if (appid != 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
app = Services.Cache.CacheHelp.cacheSysApp.FirstOrDefault(x => x.Id == appid);
|
|
|
|
|
|
}
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
DbLog log = new DbLog() { Ip = Ip == "" ? IPHelper.GetIP() : Ip, Client = UserAgent == "" ? HttpContext.Request.UserAgent : UserAgent };
|
2025-12-22 17:47:19 +08:00
|
|
|
|
var userinfo = StackChangeRedisHelper.StringGet<UserInfo>(Token);
|
2025-11-20 09:50:21 +08:00
|
|
|
|
string Uid = userinfo.Uid;
|
|
|
|
|
|
if (userinfo == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
resdata.Status = 100;
|
|
|
|
|
|
resdata.Message = "TOKEN_ERROR~";
|
|
|
|
|
|
resdata.Data = string.Empty;
|
|
|
|
|
|
Uid = "非法用户";
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
Uid = userinfo.Uid;
|
|
|
|
|
|
|
|
|
|
|
|
var user = Services.Cache.CacheHelp.cacheSysUserInfo.FirstOrDefault(x => x.Uid == Uid);
|
|
|
|
|
|
if (user == null || app == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
resdata.Status = 100;
|
|
|
|
|
|
resdata.Message = "用户或app不存在~";
|
|
|
|
|
|
resdata.Data = string.Empty;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
//返回 查询的app
|
|
|
|
|
|
resdata.Data = AppServer.AddDown(appid, sum);
|
|
|
|
|
|
resdata.Status = 200;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
log.Uid = Uid;
|
|
|
|
|
|
Task.Run(() =>
|
|
|
|
|
|
{
|
|
|
|
|
|
Data loc = HttpRequestHelp.GetIp($@"https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query={log.Ip}&co=&resource_id=6006&oe=utf8");
|
|
|
|
|
|
if (loc.status == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (loc.data.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
log.location = loc.data[0].location;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
DbLogServer.WriteDbLog($"{Uid}点击跳转了 {app.AppName} App统计数量{(resdata.Status == 200 ? "成功" : "失败")}", 0, log);
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
resdata.Status = 500;
|
|
|
|
|
|
resdata.Data = "";
|
|
|
|
|
|
resdata.Message = ex.Message;
|
|
|
|
|
|
LogHelp.WriteExceptionLog(ex);
|
|
|
|
|
|
}
|
|
|
|
|
|
return Json(resdata);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 同步数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="Pwd"></param>
|
|
|
|
|
|
/// <param name="stepid"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
[Route("OuterSyncApi/SyncData")]
|
|
|
|
|
|
public ActionResult OuterSyncApi(string Pwd, int stepid = 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
DbLogServer.WriteDbLog($"从巫工数据库同步数据到mysql数据库");
|
|
|
|
|
|
|
|
|
|
|
|
if (Pwd == "fs%sd")
|
|
|
|
|
|
{
|
|
|
|
|
|
var res = SyncAllFromOutterDB.SYNC_DATA.SYNC_DATA_ALL(stepid);
|
|
|
|
|
|
string erMsg = SyncAllFromOutterDB.GlobalSyncLockTest.recentErrMsg;
|
|
|
|
|
|
//return Json(res);
|
|
|
|
|
|
if (res)
|
|
|
|
|
|
{
|
|
|
|
|
|
return Json(new
|
|
|
|
|
|
{
|
|
|
|
|
|
messages = "同步成功",
|
|
|
|
|
|
Status = true
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
return Json(new
|
|
|
|
|
|
{
|
|
|
|
|
|
messages = erMsg,
|
|
|
|
|
|
Status = false
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
return Json(new
|
|
|
|
|
|
{
|
|
|
|
|
|
messages = "同步密码错误",
|
|
|
|
|
|
Status = false
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
[Route("OuterSyncApi/GetRoomTypeAndRoomInfo")]
|
|
|
|
|
|
public ActionResult GetRoomTypeAndRoomInfo(string HotelCode)
|
|
|
|
|
|
{
|
|
|
|
|
|
ReturnInfo ri = new ReturnInfo();
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
DbLog dlog = new DbLog
|
|
|
|
|
|
{
|
|
|
|
|
|
location = "",
|
|
|
|
|
|
Ip = "::1",
|
|
|
|
|
|
Client = "",
|
|
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
|
|
Uid = "宝镜",
|
|
|
|
|
|
Type = 0,
|
|
|
|
|
|
Content = "宝镜获取酒店" + HotelCode + "的房型和房间信息"
|
|
|
|
|
|
};
|
|
|
|
|
|
SqlSugarBase.Db.Insertable(dlog).ExecuteCommand();
|
|
|
|
|
|
TBL_HOTEL_BASIC_INFO hotel = SqlSugarBase.RcuDb.Queryable<TBL_HOTEL_BASIC_INFO>().First(it => it.PROJECT_NUMBER == HotelCode && it.IsDel != 1);
|
|
|
|
|
|
if (hotel != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
List<TBL_ROOM_TYPE_LIST> roomList = SqlSugarBase.RcuDb.Queryable<TBL_ROOM_TYPE_LIST>().Where(it => it.HOTEL_OLD_ID == hotel.IDOLD && it.IsDel != 1).ToList();
|
|
|
|
|
|
if (roomList.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
dlog = new DbLog
|
|
|
|
|
|
{
|
|
|
|
|
|
location = "",
|
|
|
|
|
|
Ip = "::1",
|
|
|
|
|
|
Client = "",
|
|
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
|
|
Uid = "宝镜",
|
|
|
|
|
|
Type = 0,
|
|
|
|
|
|
Content = "宝镜获取酒店" + HotelCode + "的房型和房间信息,成功"
|
|
|
|
|
|
};
|
|
|
|
|
|
SqlSugarBase.Db.Insertable(dlog).ExecuteCommand();
|
|
|
|
|
|
ri.ErrMsg = "成功";
|
|
|
|
|
|
ri.ErrCode = 0;
|
|
|
|
|
|
ri.HotelCode = HotelCode;
|
|
|
|
|
|
ri.RoomTypeCnt = roomList.Count;
|
|
|
|
|
|
ri.RoomNoCnt = 0;
|
|
|
|
|
|
ri.HotelNane = hotel.HOTEL_NAME_CN;
|
|
|
|
|
|
foreach (var item in roomList)
|
|
|
|
|
|
{
|
|
|
|
|
|
RoomTypeAllinfo rmt = new RoomTypeAllinfo();
|
|
|
|
|
|
rmt.RoomTypeID = item.ROOM_TYPE_OLD_ID;
|
|
|
|
|
|
rmt.RoomTypeName = item.ROOM_TYPE_NAME;
|
|
|
|
|
|
//房间集合
|
|
|
|
|
|
List<TBL_ROOM_BASIC_INFO> roominfo = SqlSugarBase.RcuDb.Queryable<TBL_ROOM_BASIC_INFO>().Where(it => it.ROOM_TYPE_OLD_ID == item.ROOM_TYPE_OLD_ID && it.IsDel != 1).ToList();
|
|
|
|
|
|
if (roominfo.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
rmt.RoomCnt = roominfo.Count;
|
|
|
|
|
|
foreach (var items in roominfo)
|
|
|
|
|
|
{
|
|
|
|
|
|
RoomAllInfo rmtinfo = new RoomAllInfo();
|
|
|
|
|
|
rmtinfo.RoomNoID = items.ROOM_OLD_ID;
|
|
|
|
|
|
rmtinfo.RoomNumber = items.ROOM_NUMBER;
|
|
|
|
|
|
rmt.RoomList.Add(rmtinfo);
|
|
|
|
|
|
ri.RoomNoCnt++;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
rmt.RoomCnt = 0;
|
|
|
|
|
|
rmt.RoomList = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ri.RoomTypelist.Add(rmt);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
dlog = new DbLog
|
|
|
|
|
|
{
|
|
|
|
|
|
location = "",
|
|
|
|
|
|
Ip = "::1",
|
|
|
|
|
|
Client = "",
|
|
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
|
|
Uid = "宝镜",
|
|
|
|
|
|
Type = 0,
|
|
|
|
|
|
Content = "宝镜获取酒店" + HotelCode + "的房型和房间信息,成功"
|
|
|
|
|
|
};
|
|
|
|
|
|
SqlSugarBase.Db.Insertable(dlog).ExecuteCommand();
|
|
|
|
|
|
ri.ErrMsg = "成功";
|
|
|
|
|
|
ri.ErrCode = 0;
|
|
|
|
|
|
ri.HotelCode = HotelCode;
|
|
|
|
|
|
ri.RoomTypeCnt = 0;
|
|
|
|
|
|
ri.RoomNoCnt = 0;
|
|
|
|
|
|
ri.RoomTypelist = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
dlog = new DbLog
|
|
|
|
|
|
{
|
|
|
|
|
|
location = "",
|
|
|
|
|
|
Ip = "::1",
|
|
|
|
|
|
Client = "",
|
|
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
|
|
Uid = "宝镜",
|
|
|
|
|
|
Type = 0,
|
|
|
|
|
|
Content = "宝镜获取酒店" + HotelCode + "的房型和房间信息,未查询到指定code的酒店"
|
|
|
|
|
|
};
|
|
|
|
|
|
SqlSugarBase.Db.Insertable(dlog).ExecuteCommand();
|
|
|
|
|
|
ri.ErrMsg = "未查询到指定code的酒店";
|
|
|
|
|
|
ri.ErrCode = 4040;
|
|
|
|
|
|
ri.HotelCode = HotelCode;
|
|
|
|
|
|
ri.RoomTypeCnt = 0;
|
|
|
|
|
|
ri.RoomNoCnt = 0;
|
|
|
|
|
|
ri.RoomTypelist = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
DbLog dlog = new DbLog
|
|
|
|
|
|
{
|
|
|
|
|
|
location = "",
|
|
|
|
|
|
Ip = "::1",
|
|
|
|
|
|
Client = "",
|
|
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
|
|
Uid = "宝镜",
|
|
|
|
|
|
Type = 0,
|
|
|
|
|
|
Content = "宝镜获取酒店" + HotelCode + "的房型和房间信息,服务器繁忙,请稍后再查询"
|
|
|
|
|
|
};
|
|
|
|
|
|
SqlSugarBase.Db.Insertable(dlog).ExecuteCommand();
|
|
|
|
|
|
ri.ErrMsg = "服务器繁忙,请稍后再查询";
|
|
|
|
|
|
ri.ErrCode = 5050;
|
|
|
|
|
|
ri.HotelCode = HotelCode;
|
|
|
|
|
|
ri.RoomTypeCnt = 0;
|
|
|
|
|
|
ri.RoomNoCnt = 0;
|
|
|
|
|
|
ri.RoomTypelist = null;
|
|
|
|
|
|
LogHelp.WriteExceptionLog(ex);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//房型集合
|
|
|
|
|
|
return Json(ri, JsonRequestBehavior.AllowGet);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public class ReturnInfo
|
|
|
|
|
|
{
|
|
|
|
|
|
public ReturnInfo()
|
|
|
|
|
|
{
|
|
|
|
|
|
RoomTypelist = new List<RoomTypeAllinfo>();
|
|
|
|
|
|
}
|
|
|
|
|
|
public int ErrCode { get; set; }
|
|
|
|
|
|
public string ErrMsg { get; set; }
|
|
|
|
|
|
public string HotelCode { get; set; }
|
|
|
|
|
|
public string HotelNane { get; set; }
|
|
|
|
|
|
public int RoomTypeCnt { get; set; }
|
|
|
|
|
|
public int RoomNoCnt { get; set; }
|
|
|
|
|
|
public List<RoomTypeAllinfo> RoomTypelist { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
public class RoomTypeAllinfo
|
|
|
|
|
|
{
|
|
|
|
|
|
public RoomTypeAllinfo()
|
|
|
|
|
|
{
|
|
|
|
|
|
RoomList = new List<RoomAllInfo>();
|
|
|
|
|
|
}
|
|
|
|
|
|
public string RoomTypeName { get; set; }
|
|
|
|
|
|
public int RoomTypeID { get; set; }
|
|
|
|
|
|
public int RoomCnt { get; set; }
|
|
|
|
|
|
public List<RoomAllInfo> RoomList { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
public class RoomAllInfo
|
|
|
|
|
|
{
|
|
|
|
|
|
public int RoomNoID { get; set; }
|
|
|
|
|
|
public string RoomNumber { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|